VB2010 HtmlAgilityPack SelectSingleNode没有返回结果

时间:2014-01-05 08:02:25

标签: html vb.net visual-studio-2010 web-scraping html-agility-pack

嘿我正在尝试使用以下代码从维基百科中获取一些文本。但它没有返回SelectSingleNode的任何值

        Dim doc As New HtmlAgilityPack.HtmlDocument
        Dim web As New HtmlAgilityPack.HtmlWeb

        doc = web.Load("http://en.wikipedia.org/wiki/Limnio")
        Dim Grape As HtmlNode = doc.DocumentNode.SelectSingleNode("//*[@id='mw-content-text']/table/tbody/tr[6]/td")
        txtPOO.Text = Grape.InnerHtml.Trim

也许我输入的dll错了?任何帮助,将不胜感激! (我是新手)

1 个答案:

答案 0 :(得分:0)

看起来你通过Chrome(或其他一些浏览器)查看了XPath,但遗憾的是,这并不容易,这是因为Chrome会向您显示HTML,因为它正在被Chrome解读。 另一方面,您必须查看从服务器返回的HTML。

当您查看原始HTML时,您会注意到没有tbody元素,因此您的XPath几乎是正确的。

Dim Grape As HtmlNode = doc.DocumentNode.SelectSingleNode("//*[@id='mw-content-text']/table/tr[6]/td")

这应该返回您正在寻找的节点。

至于测试XPath,我所知道的最好的工具是Html Agility Pack Testbed,它允许你加载页面并在其上尝试不同的xpath。您还可以查看页面的来源,以便将其全部放在一个位置。另外,您会看到HTML,因为它实际上不是Chrome渲染它的方式。