1、總鏈接庫(kù)
總鏈接庫(kù)存放著爬蟲曾經(jīng)爬取過的URL及時(shí)刻新增的URL,由調(diào)度系統(tǒng)控制提取出新URL或需要重訪的URL交由爬蟲爬取。總鏈接庫(kù)中存放的URL都是
不重復(fù)的,這樣保證了爬蟲的不重復(fù)抓取、避免陷入循環(huán)陷阱。
2、抓取策略
相對(duì)于整個(gè)互聯(lián)網(wǎng)新增內(nèi)容,SE資源是有限的。大部
抓取是不可能的事,需要SE以Z小成本抓取Z大量重要內(nèi)容,這便需要抓取優(yōu)先級(jí)調(diào)配策略。在調(diào)度系統(tǒng)中,待抓取URL成隊(duì)列結(jié)構(gòu),抓取策略便起到了對(duì)這些隊(duì)列進(jìn)行排序的作用。
爬蟲的抓取策略很多,不過其目標(biāo)都是優(yōu)先爬取重要網(wǎng)頁(yè)。常見如:寬度優(yōu)先遍歷策略、深度優(yōu)先遍歷策略、PR優(yōu)先策略、反鏈優(yōu)先策略、OPIC策略、大站優(yōu)先策略等。
寬度優(yōu)先遍歷策略指抓取某一起始頁(yè)面后,將該頁(yè)面內(nèi)擁有
鏈接放入待抓取隊(duì)列末尾,不對(duì)網(wǎng)頁(yè)重要性進(jìn)行評(píng)級(jí),按順序依次抓取,遍歷路徑:A B-C-D-E H F G;
深度優(yōu)先遍歷策略指抓取某一起始頁(yè)面后,選取其中某一鏈接進(jìn)行跟蹤抓取直至抓取完畢,進(jìn)入下一起始頁(yè),繼續(xù)跟蹤抓取,遍歷路徑:A B C-F-G D E-H;
PR優(yōu)先策略在此指非完全PR策略,因?yàn)镻R是個(gè)針對(duì)全體網(wǎng)頁(yè)的算法,而爬蟲抓取過程中只能針對(duì)某個(gè)網(wǎng)頁(yè)集合進(jìn)行PR計(jì)算,故稱非完全PR優(yōu)先策略。在這種策略中,根據(jù)待抓取隊(duì)列中URL的非完全PR值來(lái)確定抓取順序。
當(dāng)然,這種PR值并非每抓取一個(gè)頁(yè)面計(jì)算一次,而是在抓取一定量如X個(gè)頁(yè)面后,將擁有
下載頁(yè)面重新計(jì)算一遍新的非完全PR值。
根據(jù)這些PR值,確定待下載隊(duì)列中URL的下載順序。在未抓取到X個(gè)頁(yè)面前,新抓取頁(yè)面中提取出的URL可能重要性要高于之前的URL,將這些URL以PR為0放在待下載隊(duì)列的末尾是不合適的。此時(shí),就要根據(jù)這個(gè)頁(yè)面擁有
反鏈計(jì)算一個(gè)臨時(shí)PR,以次插入到待下載隊(duì)列;
反鏈優(yōu)先策略指根據(jù)網(wǎng)頁(yè)被其他網(wǎng)頁(yè)鏈接的數(shù)量來(lái)確定待抓取隊(duì)列中URL的抓取順序;
OPIC策略,Online Page Importance Computation,在線頁(yè)面重要性計(jì)算。這種策略類似于PR優(yōu)先,本質(zhì)上也是給頁(yè)面賦予了“質(zhì)量分”。在算法開始前,給擁有
頁(yè)面賦予相同的初始“現(xiàn)金”(cash),當(dāng)某個(gè)頁(yè)面被下載后,該頁(yè)面將自己的“現(xiàn)金”平均分配給頁(yè)面中擁有
鏈接,并清空自身現(xiàn)金。對(duì)于待抓取URL,根據(jù)現(xiàn)金量進(jìn)行重要性排序抓取。
大站優(yōu)先策略指對(duì)于待抓取URL,根據(jù)其歸屬域名進(jìn)行分類整理,優(yōu)先下載待下載URL數(shù)量多的鏈接。
其他策略如根據(jù)URL中目標(biāo)層級(jí),URL后綴及URL中字符串等確定抓取排序。
在實(shí)際抓取中,往往是多種策略組合使用的。以上策略對(duì)于SEO提高收錄有很多指導(dǎo)意義,如:控制入鏈數(shù)、控制出鏈數(shù)、控制網(wǎng)站結(jié)構(gòu)及外鏈權(quán)重(數(shù)量、質(zhì)量、Nofollow等)、增加新內(nèi)容更新頻率等。
