2010-12-21 58 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。