搜索引擎的技術(shù)攻堅(jiān)戰(zhàn)顺呕,之爬蟲枫攀!

2014年,一部名為《這就是搜索引擎:核心技術(shù)詳解》的書株茶,再次把“搜索”這一核心話題来涨,帶入公眾視野。姑且拋開此書一版再版所折射的隱性魅力不言启盛,正如書中所說蹦掐,基于其所充當(dāng)?shù)幕ヂ?lián)網(wǎng)入口地位技羔,及復(fù)雜的實(shí)現(xiàn)方式,“搜索引擎”都是目前互聯(lián)網(wǎng)產(chǎn)品中最具技術(shù)含量的產(chǎn)品卧抗,即便不是唯一藤滥,至少也是其中之一。

而我們今天所要探討的話題社裆,正是圍繞“爬蟲抓取策略”所展開的爬蟲相關(guān)簡介拙绊,并借此帶領(lǐng)我們身邊的“老司機(jī)”,一起發(fā)現(xiàn)那些有可能被忽略掉的理論泳秀。

1.? ? 一句話概括爬蟲

“傳輸海量網(wǎng)頁數(shù)據(jù)至本地标沪,并形成數(shù)以億計(jì)網(wǎng)頁之鏡像備份”的高效下載系統(tǒng)設(shè)計(jì)。

2.????通用爬蟲框架流程

a.?????精選部分網(wǎng)頁鏈接地址作為種子URL嗜傅,并將種子URL放入待抓取URL隊(duì)列金句;

b.????從待抓取URL隊(duì)列依次讀取URL,并通過DNS將URL鏈接地址磺陡,轉(zhuǎn)換為網(wǎng)站服務(wù)器對(duì)應(yīng)的IP地址趴梢;

c.?????將網(wǎng)站IP地址和網(wǎng)頁相對(duì)路徑名稱交給網(wǎng)頁下載器漠畜,下載頁面內(nèi)容币他;

d.????將下載后的網(wǎng)頁所對(duì)應(yīng)的URL放入已抓取URL隊(duì)列,并將下載到本地的網(wǎng)頁內(nèi)容存儲(chǔ)到頁面庫憔狞,等待后續(xù)處理蝴悉;

e.?????從剛下載的網(wǎng)頁中抽取所有鏈接,并與已抓取URL隊(duì)列做對(duì)比瘾敢,檢出未被抓取的URL鏈接放入待抓取URL隊(duì)列拍冠,并重復(fù)新一輪抓取操作;

f.??????循環(huán)到網(wǎng)頁被盡數(shù)抓完簇抵,完整一輪完整抓取過程庆杜。

PS.動(dòng)態(tài)抓取中的爬蟲&與網(wǎng)頁的相對(duì)關(guān)系

已下載網(wǎng)頁集合:已被爬蟲從互聯(lián)網(wǎng)下載到本地進(jìn)行索引的網(wǎng)頁集合;

已過期網(wǎng)頁集合:所對(duì)應(yīng)互聯(lián)網(wǎng)網(wǎng)頁已做動(dòng)態(tài)更新碟摆,卻未及爬蟲展開新一輪爬取的晃财,已被下載到本地的網(wǎng)頁集合;

待下載網(wǎng)頁集合:處于待抓取URL隊(duì)列中的網(wǎng)頁集合典蜕;

可知網(wǎng)頁集合:存在于已抓取網(wǎng)頁或待抓取網(wǎng)頁中的断盛,未及爬取,但遲早會(huì)被爬蟲通過鏈接關(guān)系發(fā)現(xiàn)愉舔,并進(jìn)行抓取和索引的網(wǎng)頁集合钢猛;

不可知網(wǎng)頁集合:爬蟲無法抓取到的網(wǎng)頁集合;

3.? ? 三種爬蟲類型

a.?????批量型爬蟲

有著明確的抓取范圍和目標(biāo)轩缤,達(dá)到設(shè)定目標(biāo)(特定數(shù)量網(wǎng)頁或特定長度時(shí)間)即停止抓取的爬蟲類型命迈;

b.????增量型爬蟲

持續(xù)不斷地抓取網(wǎng)頁贩绕,并對(duì)已抓取網(wǎng)頁進(jìn)行定期更新的爬蟲類型;

c.?????垂直型爬蟲

只抓取特定行業(yè)網(wǎng)頁或主題內(nèi)容的爬蟲類型

4.????優(yōu)秀爬蟲需滿足的條件

a.?????高性能

單位時(shí)間盡可能抓取更多的網(wǎng)頁壶愤;

b.????可擴(kuò)展

可通過增加抓取服務(wù)器和爬蟲數(shù)量的方式丧叽,較為容易地解決縮短抓取周期的問題;

c.?????健壯性

能正確應(yīng)對(duì)諸如網(wǎng)頁HTML編碼不規(guī)范公你、服務(wù)器突然死機(jī)踊淳、爬蟲陷阱等異常情況,避免工作中斷陕靠,或中斷后能輕易恢復(fù)之前抓取到的數(shù)據(jù)迂尝;

d.????友好性

保護(hù)網(wǎng)站的部分私密性(避抓爬蟲禁抓協(xié)議下的網(wǎng)頁,避抓網(wǎng)頁禁抓標(biāo)記下的部分內(nèi)容)剪芥,并減少被抓取網(wǎng)站的網(wǎng)絡(luò)負(fù)載垄开;

5.? ? 爬蟲抓取策略

爬蟲抓取的總原則:優(yōu)先選擇重要網(wǎng)頁進(jìn)行抓取(PageRank是評(píng)價(jià)網(wǎng)頁重要性的常用標(biāo)準(zhǔn))税肪,確定待抓取URL隊(duì)列則是技術(shù)關(guān)鍵溉躲。

根據(jù)URL優(yōu)先排序的不同確定方法,劃分4種爬蟲抓取策略如下:

a.?????寬度優(yōu)先遍歷策略

含義: 一種通過“將新下載網(wǎng)頁包含的鏈接益兄,直接機(jī)械地追加到待抓取URL隊(duì)列末尾”的方式锻梳,實(shí)現(xiàn)合理安排URL下載順序的抓取策略。

特點(diǎn):簡單直觀净捅、歷史悠久疑枯、功能強(qiáng)悍,對(duì)比各種抓取策略的基準(zhǔn)策略蛔六。

優(yōu)缺點(diǎn):可基本保證按網(wǎng)頁重要性排序待抓取URL列表荆永,效果很好。

b.????非完全PageRank策略

PageRank:一種著名的国章,能確定網(wǎng)頁重要性的具钥,全局性的,鏈接分析算法液兽。

非完全PageRank策略: 一種“在不完整的互聯(lián)網(wǎng)頁面子集中骂删,計(jì)算PageRank,形成待抓取URL隊(duì)列”的爬蟲抓取策略抵碟,即連帶已下載網(wǎng)頁和待抓取URL隊(duì)列中的URL一起桃漾,組成網(wǎng)頁集合,并在所組成的網(wǎng)頁集合中進(jìn)行PageRank計(jì)算拟逮,并按照PageRank得分從高到低的順序撬统,將待抓取URL隊(duì)列重排,形成新的待抓取URL隊(duì)列敦迄,這樣一種抓取策略恋追。

l? 非完全PageRank凭迹,常采用“每當(dāng)新下載網(wǎng)頁攢夠K個(gè),將所有下載頁面重新進(jìn)行一次非完全PageRank計(jì)算”的方法進(jìn)行苦囱;

l? 在新一輪非完全PageRank計(jì)算未展開前嗅绸,賦予新抽取出來的還沒有PageRank值的網(wǎng)頁以臨時(shí)PageRank值,以跟待抓取URL列表形成大小比較撕彤,考慮到新抽取網(wǎng)頁需要優(yōu)先抓取的需要鱼鸠。

優(yōu)缺點(diǎn):爭論不一

c.? ? OCIP策略

含義:OCIP,在線頁面重要性計(jì)算羹铅。通過“算法開始前蚀狰,給予所有互聯(lián)網(wǎng)頁面相同現(xiàn)金(cash), 每下載一個(gè)頁面,便將其對(duì)應(yīng)的現(xiàn)金均分給頁內(nèi)所包含的頁面鏈接职员,以清空已下載頁面的現(xiàn)金值麻蹋。待抓取URL隊(duì)列中的網(wǎng)頁,均按照現(xiàn)金由多到少排序焊切,并實(shí)現(xiàn)順次抓取”

效果:一種較好的重要性衡量策略扮授,效果優(yōu)于寬度優(yōu)先遍歷策略。

優(yōu)缺點(diǎn):不需迭代专肪,計(jì)算速度快刹勃,適于實(shí)時(shí)計(jì)算。

d.????大站優(yōu)先策略

含義:優(yōu)先下載大型網(wǎng)站牵祟,即以網(wǎng)站為單位來衡量網(wǎng)頁重要性深夯,對(duì)于待抓取URL隊(duì)列中的網(wǎng)頁抖格,根據(jù)所屬網(wǎng)站歸類诺苹,如果哪個(gè)網(wǎng)站等待下載的頁面最多,則優(yōu)先下載這些鏈接雹拄。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末收奔,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子滓玖,更是在濱河造成了極大的恐慌坪哄,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,252評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件势篡,死亡現(xiàn)場離奇詭異翩肌,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)禁悠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門念祭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人碍侦,你說我怎么就攤上這事粱坤×ジ猓” “怎么了?”我有些...
    開封第一講書人閱讀 168,814評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵站玄,是天一觀的道長枚驻。 經(jīng)常有香客問我,道長株旷,這世上最難降的妖魔是什么再登? 我笑而不...
    開封第一講書人閱讀 59,869評(píng)論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮晾剖,結(jié)果婚禮上霎冯,老公的妹妹穿的比我還像新娘。我一直安慰自己钞瀑,他們只是感情好沈撞,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,888評(píng)論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著雕什,像睡著了一般缠俺。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上贷岸,一...
    開封第一講書人閱讀 52,475評(píng)論 1 312
  • 那天壹士,我揣著相機(jī)與錄音,去河邊找鬼偿警。 笑死躏救,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的螟蒸。 我是一名探鬼主播盒使,決...
    沈念sama閱讀 41,010評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼七嫌!你這毒婦竟也來了少办?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,924評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤诵原,失蹤者是張志新(化名)和其女友劉穎英妓,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體绍赛,經(jīng)...
    沈念sama閱讀 46,469評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蔓纠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,552評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了吗蚌。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片腿倚。...
    茶點(diǎn)故事閱讀 40,680評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖褪测,靈堂內(nèi)的尸體忽然破棺而出猴誊,到底是詐尸還是另有隱情潦刃,我是刑警寧澤,帶...
    沈念sama閱讀 36,362評(píng)論 5 351
  • 正文 年R本政府宣布懈叹,位于F島的核電站乖杠,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏澄成。R本人自食惡果不足惜胧洒,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,037評(píng)論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望墨状。 院中可真熱鬧卫漫,春花似錦、人聲如沸肾砂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽镐确。三九已至包吝,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間源葫,已是汗流浹背诗越。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評(píng)論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留息堂,地道東北人嚷狞。 一個(gè)月前我還...
    沈念sama閱讀 49,099評(píng)論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像荣堰,于是被迫代替她去往敵國和親床未。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,691評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容