官术网_书友最值得收藏!

3.2 爬行策略

在網絡爬蟲爬取的過程,在待爬取的URL列表中,可能有很多URL地址,那么這些URL地址,爬蟲應該先爬取哪個,后爬取哪個呢?在通用網絡爬蟲中,雖然爬取的順序并不是那么重要,但是在其他很多爬蟲中,比如聚焦網絡爬蟲中,爬取的順序非常重要,而爬取的順序,一般由爬行策略決定。在這一節中,我們將為大家介紹一些常見的爬行策略。

爬行策略主要有深度優先爬行策略、廣度優先爬行策略、大站優先策略、反鏈策略、其他爬行策略等。下面我們將分別進行介紹。

如圖3-3所示,假設有一個網站,ABCDEFG分別為站點下的網頁,圖中箭頭表示網頁的層次結構。

圖3-3 某網站的網頁層次結構示意圖

假如此時網頁ABCDEFG都在爬行隊列中,那么按照不同的爬行策略,其爬取的順序是不同的。

比如,如果按照深度優先爬行策略去爬取的話,那么此時會首先爬取一個網頁,然后將這個網頁的下層鏈接依次深入爬取完再返回上一層進行爬取。

所以,若按深度優先爬行策略,圖3-3中的爬行順序可以是:A → D → E → B → C → F → G。

如果按照廣度優先的爬行策略去爬取的話,那么此時首先會爬取同一層次的網頁,將同一層次的網頁全部爬取完后,在選擇下一個層次的網頁去爬行,比如,上述的網站中,如果按照廣度優先的爬行策略去爬取的話,爬行順序可以是:A→B→C→D→E→F→G。

除了以上兩種爬行策略之外,我們還可以采用大站爬行策略。我們可以按對應網頁所屬的站點進行歸類,如果某個網站的網頁數量多,那么我們則將其稱為大站,按照這種策略,網頁數量越多的網站越大,然后,優先爬取大站中的網頁URL地址。

一個網頁的反向鏈接數,指的是該網頁被其他網頁指向的次數,這個次數在一定程度上代表著該網頁被其他網頁的推薦次數。所以,如果按反鏈策略去爬行的話,那么哪個網頁的反鏈數量越多,則哪個網頁將被優先爬取。但是,在實際情況中,如果單純按反鏈策略去決定一個網頁的優先程度的話,那么可能會出現大量的作弊情況。比如,做一些垃圾站群,并將這些網站互相鏈接,如果這樣的話,每個站點都將獲得較高的反鏈,從而達到作弊的目的。作為爬蟲項目方,我們當然不希望受到這種作弊行為的干擾,所以,如果采用反向鏈接策略去爬取的話,一般會考慮可靠的反鏈數。

除了以上這些爬行策略,在實際中還有很多其他的爬行策略,比如OPIC策略、Partial PageRank策略等。

主站蜘蛛池模板: 宣化县| 阜宁县| 昌宁县| 盘山县| 德庆县| 岑溪市| 织金县| 西畴县| 敦煌市| 彩票| 泸西县| 博白县| 石首市| 泉州市| 井陉县| 南投市| 公主岭市| 高邮市| 唐海县| 边坝县| 舞阳县| 鸡西市| 榆林市| 濮阳县| 平罗县| 桐庐县| 田东县| 三河市| 揭东县| 葵青区| 胶南市| 丰顺县| 拉萨市| 讷河市| 怀远县| 渑池县| 河南省| 嘉禾县| 中卫市| 苏尼特右旗| 石屏县|