我试图从页面http://www.pgatour.com/players/player.24502.adam-scott.html/season
上的表中提取数据但是我从chrome复制的Xpath返回一个空引用。我尝试了几种变体,但没有任何工作,我之前从未使用过XPath,我错过了什么?
string Url = "http://www.pgatour.com/players/player.24502.adam-scott.html/season";
HtmlWeb web = new HtmlWeb();
HtmlDocument doc = web.Load(Url);
var firstTournamentDate = doc.DocumentNode.SelectNodes("//*[@id='player-season-details-table']/div/table/tr[2]/td[1]");
注意:我已从Chrome生成的XPath中删除了tbody
轴步骤。
修改
firstTournamentDate
变量为null,如果我尝试这个:
var x = doc.DocumentNode.SelectNodes("//*[@id='player-season-details-table']/div/table/tr[2]/td[1]", index)[0].InnerText;
它会抛出null reference exception
答案 0 :(得分:1)
使用AJAX动态加载数据。您不能简单地使用XPath表达式访问它而不执行JavaScript,例如使用Selenium。
但是使用Firebug / Chrome开发工具并监控“网络”标签,您可以尝试找出所请求的网址。我想你正在寻找
http://www.pgatour.com/data/players/24502/2014results.json
可以轻松返回表内容以解析JSON对象。