我正在尝试使用 xidel 从 html 中提取 xpath,最近遇到了无效的 html
我使用 firefox 来获取 xpath,但 firefox 会自动添加缺少的标签,因此 xpath 不匹配
我可以停止firefox,还是你能建议一种方法来解决这个问题?
还有某种反向xpath吗?获取某些文本的 xpath?
正如 Jim Garrison 已经提到的:如果您的 html 无效,XPath 将无法工作。要回答您的第二个问题:您可以使用浏览器扩展/插件轻松获取某些文本的 XPath。
例如,对于 Firefox,您可以使用XPath Checker。
我在 Chrome 上
使用XPath Helper 。
请记住,当您尝试获取格式不正确的 html 文档的 XPath 时,结果可能是错误的。
如果 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()