2010-01-04 35 views
9

我在瀏覽器中加載了一個網頁(即,它的DOM和元素定位都可以訪問到),我想查找塊元素(或排序這些元素的列表),其中可能包含最多的內容(如連續的文本塊)。目標是排除菜單,頁眉,頁腳等內容。我可以使用什麼算法來識別網頁上的內容

回答

1

首先,如果您需要解析網頁,我會使用HTMLAgilityPack將其轉換爲XML。它將加快速度,並使您能夠使用簡單的XPath直接進入BODY。

之後,您必須運行所有div(您可以從敏捷包中獲取列表中的所有DIV元素),然後獲取所需內容。

+0

我更感興趣的是我可能用來判斷各個候選節點的標準種類。 – VoY 2010-01-04 13:03:40

1

有一個簡單的方法來做到這一點的基礎上,分析「噪聲」 HTML如何,即什麼是標記來顯示文本通過HTML頁面的比例。 The Easy Way to Extract Useful Text from Arbitrary HTML描述了這個tex,給出了一些python代碼來說明。

參考還有HTML::ContentExtractor Perl模塊,它實現了這個想法。如果你想使用這個,使用beautifulsoup,首先清理html是有意義的。

1

我會推薦Vit Baisa的論文Web Content Cleaning,我想他也有一些代碼,但是我找不到它的鏈接。在LingPipe博客的自然語言處理中也存在一個相同問題的discussion

相關問題