2010-12-21 35 views
1

产生了一些的XPath我使用HtmlCleaner2.1库,用于评估通过对HTML XPather插件生成的,从它的内容拼凑而成的XPath。但有时候,HtmlCleaner无法评估xpath。HtmlCleaner未能通过XPather

对于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清理它时页面的结构发生了变化吗?

感谢
Jitendra

+0

@Jitendra:一般来说,对于文档声称XHTML验证是不合格的XML,这不是一个好的设计选择。 – 2010-12-21 15:48:43

+0

它以哪种方式失败? (例如错误信息,获取错误的数据,没有数据......) – LarsH 2010-12-21 17:04:14

回答

1

页是否改变结构时 htmlcleaner清洁呢?

据对http://htmlcleaner.sourceforge.net/前奏例如,HTMLCleaner 肯定能清理时更改页面的结构。在这个例子中,它添加html和body元素,并将h1元素移出表格。

为什么不在页面上运行HTMLCleaner并查看它的输出?然后你就可以判断结构是否以及如何改变。

是否有某种方式来避免它或其他 也就是说,通过保持 HtmlCleaner尽可能接近至 DOM通过内置的浏览器的DOM产生。

您可以通过指定一个修改的标记信息集来完成此操作,这与default one不同。这显然是配置DOM的“更正”的东西。 (见here如何使用它,如果你使用的命令行界面。)

或者,如果你可以建议一些其他 HTML解析器,其DOM是由浏览器非常接近 到DOM,所以XPather插件生成的xpath 很少会失败 。

我会尝试HTML Tidy看看它对DOM有什么影响。这是一个广泛使用和成熟的程序来整理刮掉的HTML。