我正在使用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的广泛使用的成熟程序。

09-25 20:39