我正在使用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打印到文本文件时,我可以找到它。有关找到这些节点的任何见解吗?
答案 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