我正在使用HtmlCleaner2.1库评估XPather插件针对html生成的xpath,以从中抓取内容。但是有时,HtmlCleaner无法评估xpath。
对于e.x.
http://www.megaoutdoors.co.uk/norwegen-army-shirt-zipped-roll-top-collar-278-p.asp
对于产品标题,XPather给出的xpath为// body / div [11] / div [6] / div [2] / form / div [1] / h1
但这在我使用HtmlCleaner进行评估时失败。
我们如何克服这个问题。 htmlcleaner清除页面结构时会改变它吗?
谢谢
吉滕德拉
最佳答案
页面结构何时发生变化?
htmlcleaner清理吗?
根据http://htmlcleaner.sourceforge.net/上的介绍示例,HTMLCleaner当然可以在清理时更改页面的结构。在该示例中,它添加了html和body元素,并将h1元素移出了表格。
为什么不在页面上运行HTMLCleaner并查看其输出?然后,您将能够知道结构是否以及如何发生了变化。
有什么办法可以避免它或在
换句话说,保持DOM由
HtmlCleaner尽可能接近
由浏览器构建的DOM。
您可以通过指定与default one不同的修改后的标签信息集来实现。显然,这是配置DOM的“更正”的原因。 (如果使用的是命令行界面,请参见here如何使用它。)
或者,如果您可以提出其他建议
html解析器,其DOM非常接近
通过浏览器访问DOM,以便xpath
XPather插件生成的文件将失败
非常稀有。
我会尝试HTML Tidy看看它对DOM有什么作用。这是一个用于整理已清除的HTML的广泛使用的成熟程序。