2012-05-12 38 views
4

DOM這樣的stanadard方法可以有選擇地解析html頁面,但是我不知道抓取工具(從小到大)是如何檢測要分析的主要文本的?抓取工具如何解析網頁上的文字?

將被分析以捕獲其關鍵字的正文與菜單,側邊欄,頁腳等混合在一起。抓取工具如何知道如何從菜單和側面部件中跳過關鍵字?

我正在從一個小型PHP項目中捕獲來自各種HTML頁面的關鍵字,並且我不知道如何避免從副內容中捕獲關鍵字。任何人都可以描述或至少給我一個提示,如何區分HTML頁面中的主要內容和其他內容?

+0

我不是在談論搜索結果。例如,解析當前頁面時,如何識別主文本是我的問題及其答案;不是側邊欄,相關問題列表,菜單,StackOverflow筆記等。我正在談論編寫爬網程序,而不是如何控制爬網程序處理我的網站的方式。 – Googlebot

+0

看看[Readability project](http://arc90.com/work/readability/),它已被移植到PHP和Python –

回答

2

側邊欄,菜單和頁腳通常在整個網站的每個頁面上重複。實際內容通常對每個頁面都是唯一的。您可以將其用作區分實際內容的指南。

爬行程序還使用複雜的算法分析頁面上的文本,以確定其作爲內容的權重,並且他們傾向於不分享他們的祕密。

沒有快速簡便的方法,爬蟲開發人員必須提出自己的創新方法,並共同使用這些方法來全面瞭解網頁的內容。

+0

你是對的!爬行器技術真的很先進和複雜,但對於中小型爬行器也應該有一些技巧。 – Googlebot

0

如果內容是文本內容,您可以假定頁面的主要內容是單詞密度相對較高的地方。

這意味着與搜索引擎相關的頁面的主要內容 - 頁面的主要內容是dom元素內的大部分div,其中包括像p,em,b等標籤的文字數量等主要用於文本格式,高於或高於閾值。

我應符合以下邏輯

獲得在網頁中使用的所有標籤開始。

我將記下dom元素,其中內容僅由文字和格式化標記(如p,em,b,li,ul)以及定位標記組成。

我會離開只包含錨定標籤的div,並假設它們用於導航目的。

現在,所有這些選擇數字超過特定閾值的dom元素。

該閾值從網站到網站上,你可以採取如AVG(具有跨特定的URL結構的網站的所有網頁最高的文字股利發現文字)

該算法中學習其過程。

+0

不是關鍵字密度,字密度 –

+0

對不起,這是錯字;我的意思是「字密度」。如何測量html標籤池中的單詞密度? – Googlebot

相關問題