我正在使用 HtmlCleaner2.1 库来根据 html 评估 XPather 插件生成的 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清理时页面结构会改变吗?
谢谢
吉腾德拉
最佳答案
Does structure of page change when htmlcleaner cleans it?
根据http://htmlcleaner.sourceforge.net/上的介绍示例、HTMLCleaner当然可以在清理时改变页面的结构。在该示例中,它添加了 html 和 body 元素,并将 h1 元素移出表格。
为什么不在页面上运行 HTMLCleaner 并查看它的输出?然后您将能够判断结构是否以及如何改变。
Is there some way to avoid it or in other words, keep DOM generated by HtmlCleaner as close as possible to DOM built by browser.
您可以通过指定与default one不同的修改后的标签信息集来做到这一点。这显然是配置 DOM 的“更正”的内容。 (如果您使用命令行界面,请参阅 here 了解如何使用它。)
Or if you could suggest some another html parser, whose DOM is very close to DOM by browser, so that xpath generated by XPather plugin would fail very rarely.
我会尝试HTML Tidy看看它对 DOM 做了什么。它是一个广泛使用且成熟的程序,用于整理抓取的 HTML。
关于java - HtmlCleaner 在 XPather 生成的某些 xpath 上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4500718/