0

我正在尝试使用 xidel 从 html 中提取 xpath,最近遇到了无效的 html

我使用 firefox 来获取 xpath,但 firefox 会自动添加缺少的标签,因此 xpath 不匹配

我可以停止firefox,还是你能建议一种方法来解决这个问题?

还有某种反向xpath吗?获取某些文本的 xpath?

4

2 回答 2

0

正如 Jim Garrison 已经提到的:如果您的 html 无效,XPath 将无法工作。要回答您的第二个问题:您可以使用浏览器扩展/插件轻松获取某些文本的 XPath。

例如,对于 Firefox,您可以使用XPath Checker
我在 Chrome 上 使用XPath Helper 。

请记住,当您尝试获取格式不正确的 html 文档的 XPath 时,结果可能是错误的。

于 2015-10-07T13:57:22.297 回答
0

如果 XML/HTML 无效,Xidel 将在应用 XPath 之前对其进行修复。

尽管它的修复方式可能与 Firefox 不同。你可以看到它是如何改变的:

xidel http://yourwebpage -e / --html

如果您保存该输出并在 Firefox 中打开它,您可以为此创建 XPath。

通常,修复可能会更改中间标签,但可能会保持类和 id 不变。因此,您可以将某些 XPath 替换/html/body/div[2]/div[@id="foo"]/p[1]/p/text()//div[@id="foo"]/p[1]/span/text()//div[@id="foo"]//span[1]/text()

于 2015-10-22T22:44:28.470 回答