【发布时间】:2011-08-24 06:03:45
【问题描述】:
我正在尝试使用 HTML Agility Pack 从this website 中抓取价格字段。
我的代码如下;
var web = new HtmlWeb();
var doc = web.Load(String.Format(overClockersURL, componentID));
var priceContent = doc.DocumentNode.SelectSingleNode("//*[@id=\"prodprice\"]");
我通过使用 Firebug 的“Copy as XPath”功能获得了 XPath 查询。
我遇到的问题是 SelectSingleNode 正在返回 null - 它似乎没有找到查询指定的元素。我有点不明白为什么,但我对 XPath 没有太多经验,所以希望能得到一些关于我做错了什么的指点。
【问题讨论】:
-
当空集合更好时,HTML 敏捷包返回 null 让我很恼火。您是否尝试过尝试 XPath 并用已知元素名称替换“*”,例如如果您知道有一个 id 为“prodprice”的 div 将“*”替换为“div”以查看是否得到不同的结果?
-
抱歉,必须在最后一条评论中添加空格才能显示星号,因为它会将它们解释为斜体标记的开始/结束。
-
嗨@Colin Mackay:我试过“//span[@id='prodprice']”,但结果相同-返回null:S
-
@Oscar Mederos:这正是正在发生的事情 - 感谢您的建议。如果您将评论移至答案,那么我可以将其标记为已接受的解决方案。
标签: c# xpath html-agility-pack