如何获取无效html的xpath?

时间:2015-10-06 20:17:53

标签: xml firefox xpath xidel

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

我使用firefox来获取xpath,但是firefox会自动添加缺少的标签 所以xpath doesent匹配

我可以停止使用firefox,还是可以建议一种解决方法?

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

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

如果XML / HTML无效,Xidel将在应用XPath之前修复它。

虽然它可能会以不同于Firefox的方式修复它。您可以通过以下方式查看更改方式:

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

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

通常,修复可能会更改中间标记,但它可能会保持类和ID不变。因此,您可以使用/html/body/div[2]/div[@id="foo"]/p[1]/p/text()//div[@id="foo"]/p[1]/span/text()

替换某些XPath,例如//div[@id="foo"]//span[1]/text()