如何解决我如何找到正确的 XPATH?
我正在尝试找到与 HTML Agility Pack 一起使用的正确 XPath。我尝试了多个 XPath,但都给了我 - $exception {"Object reference not set to an instance of an object."} System.NullReferenceException
以下是我尝试过的一些 XPath。都给我一个错误
//*[@id="div_team-stats-per_game"]
// html / body / div[2] / div[5] / div[4] / div[3] / div
//*[@id="team-stats-per_game"]/tbody
这是我的代码:
HtmlWeb web1 = new HtmlWeb();
HtmlAgilityPack.HtmlDocument doc1 = new HtmlAgilityPack.HtmlDocument();
doc1 = web1.Load("https://www.basketball-reference.com/leagues/NBA_2021.html");
var _extractText = doc1.DocumentNode.SelectSingleNode("//*[@id=\"team-stats-per_game\"]").InnerText;
Console.WriteLine(_extractText);
解决方法
你有能力使用 LoadFromBrowser 方法吗?您当前使用的方法将获取文档的原始 HTML,但不会获取动态加载的内容。
您尝试解析的表格已通过 javascript 加载到页面中,因此您需要使用 LoadFromBrowser 方法并等待显示元素:
HtmlWeb web1 = new HtmlWeb();
HtmlAgilityPack.HtmlDocument doc1 = new HtmlAgilityPack.HtmlDocument();
doc1 = web1.LoadFromBrowser("https://www.basketball-reference.com/leagues/NBA_2021.html",html => {
// Wait for the HTML element to exist
return !html.Contains("<table id=\"team-stats-per_game\">");
});
var _extractText = doc1.DocumentNode.SelectSingleNode("//*[@id=\"team-stats-per_game\"]").InnerText;
Console.WriteLine(_extractText);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。