HTML Agility Pack无法找到xPath

时间:2014-12-18 00:06:41

标签: c# web-scraping html-agility-pack

我正在使用HTML Agility Pack在C#中编写Web抓取程序。我之前用Java编写过,但我将它转移到C#。在我使用jSoup来解析我的HTML并且没有问题从Yahoo Finance通过xpath获取元素之前,但现在,使用HTML Agility Pack,我无法使用xpath从该站点获取任何元素,并且它们似乎是合法的节点。这是一个例子

http://finance.yahoo.com/q?s=AMZN是网站

我使用此代码将其添加到电子表格

ws.get_Range("A2").Value2 = doc.DocumentNode.SelectSingleNode("//*[@id='table1']/tbody/tr[1]/td").InnerText;

我应该补充一点,这是一个Excel加载项。当我将HTML写入电子表格时,我似乎无法找到" table1" HTML中的任何地方,但是当我将HTML打印到文本文件时,我可以找到它。有关找到这些节点的任何见解吗?

2 个答案:

答案 0 :(得分:2)

我找到了。 HtmlAgilityPack不喜欢使用" / tbody" xpath的一部分。如果您正在搜索表格元素,请将其取出。

答案 1 :(得分:-1)

了解Xpath中的差异

// [@ id =“ quote-summary”] / div [1] / table / tbody / tr [1] / td [2] / span Data1
//
[@ id =“ quote-summary”] / div [1] / table / tbody / tr [2] / td [2] / span 数据2