我正在尝试使用xidel从html中提取xpath,并且最近遇到了无效的html
我使用firefox来获取xpath,但是firefox会自动添加缺少的标签 所以xpath doesent匹配
我可以停止使用firefox,还是可以建议一种解决方法?
还有反向xpath吗?获取某些文本的xpath?
答案 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()
//div[@id="foo"]//span[1]/text()