1

我正在使用HtmlCleaner2.1库来评估XPather插件针对 html 生成的 xpath 以从中抓取内容。但有时,HtmlCleaner 无法评估 xpath。

对于前 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 清理时页面结构是否会改变?

谢谢吉滕德拉
_

4

1 回答 1

1

htmlcleaner 清理时页面结构是否会改变?

根据http://htmlcleaner.sourceforge.net/上的介绍示例,HTMLCleaner在清理时当然可以改变页面的结构。在该示例中,它添加了 html 和 body 元素,并将 h1 元素移出表格。

为什么不在页面上运行 HTMLCleaner 并查看它的输出?然后,您将能够判断结构是否以及如何发生变化。

有没有办法避免它,或者换句话说,让 HtmlCleaner 生成的 DOM 尽可能接近浏览器构建的 DOM。

您可以通过指定一个修改后的标签信息集来做到这一点,不同于默认的标签信息集。这显然是配置 DOM 的“更正”的原因。(如果您使用的是命令行界面,请参阅此处了解如何使用它。)

或者,如果您可以建议一些其他 html 解析器,其 DOM 非常接近浏览器的 DOM,因此 XPather 插件生成的 xpath 很少会失败。

我会尝试HTML Tidy,看看它对 DOM 做了什么。它是一个广泛使用且成熟的整理抓取 HTML 的程序。

于 2010-12-22T12:53:06.477 回答