【问题标题】:HTML Agility Pack with Full xpath带有完整 xpath 的 HTML 敏捷包
【发布时间】:2012-03-07 09:26:40
【问题描述】:

我正在尝试寻找一种工具来从网页中捕获项目。首先,我使用了 xpath finder Firefox 插件,但有时它会生成带有模式的 xpath(xpath 2.0),所以它不适合

以下是使用 firepath (firefox) 为 google 搜索按钮生成的绝对 xpath

html/body/div[2]/div[1]/div[1]/div[2]/div[2]/div/form/div[1]/button[1]

当我尝试时

doc.DocumentNode.SelectSingleNode("html/body/div[2]/div[1]/div[1]/div[2]/div[2]/div/form/div[1]/button[1]").InnerText;

它给出了空引用异常。

所以我也不能使用火路。

我需要一个与 HTML Agility Pack 配合使用的工具。或者需要找出上面为什么不起作用。

【问题讨论】:

  • 没有看到HTML文件的结构,很难给出答案。尝试使用 / 开始 XPath 声明来根它。此外,button 元素 真的 是否包含任何 InnerText???

标签: html-agility-pack


【解决方案1】:

在使用 FirePath 时,当我禁用生成绝对 XPATH 时,我得到了很好的结果。 在您的情况下,生成的 xpath 是

.//*[@id='gbqfb']

但我可以编写如下的 XPATH 查询:

//button[@name='btnG']

不确定为什么您的 XPATH 查询不起作用,但当我删除 form 标记时,下面的查询似乎起作用。

doc.DocumentNode.SelectSingleNode("html/body/div[2]/div[1]/div[1]/div[2]/div[2]/div/div[1]/button[1]").InnerText;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-01
    • 2012-08-09
    • 1970-01-01
    • 2015-02-16
    • 1970-01-01
    • 2010-12-19
    • 1970-01-01
    • 2012-07-18
    相关资源
    最近更新 更多