搜索引擎之爬蟲

本文約?2300?字酗捌,建議閱讀時間為?5?分鐘,理解為主。此處草姻,強烈建議查看上一篇《搜索引擎之技術(shù)架構(gòu)》。

上一篇《搜索引擎之技術(shù)架構(gòu)》稍刀,我們講述了搜索引擎的概念撩独、種類,和技術(shù)架構(gòu)账月,我們用一張圖回顧一下综膀。

搜索引擎技術(shù)架構(gòu)

本章,我們重點來學習一下圖上左上角的爬蟲局齿,主要包括五個方面的內(nèi)容:

爬蟲的概念

爬蟲的分類

爬蟲的抓取策略

爬蟲的更新策略

爬蟲的部署特點

1 爬蟲的概念

爬蟲剧劝,又稱蜘蛛、Spider抓歼、機器人拢锹、Bot等(以下統(tǒng)一稱為“爬蟲”),是搜索引擎用來抓取互聯(lián)網(wǎng)網(wǎng)頁的軟件程序萄喳,處于整個搜索引擎業(yè)務和技術(shù)的最上游模塊卒稳。

只有爬蟲抓取的網(wǎng)頁才會在參與之后的內(nèi)容和鏈接的處理,但不會爬蟲抓取的網(wǎng)頁也有可能出現(xiàn)在搜索引擎結(jié)果之中他巨,比如充坑,淘寶網(wǎng)禁止百度的爬蟲抓取其內(nèi)容,但域名層級也會參與最終的網(wǎng)頁排序染突,最終展示給用戶捻爷。

2 爬蟲的種類

按照抓取對象的側(cè)重點,可以將爬蟲分為以下幾類:

1)批量型爬蟲觉痛,BatchCrawler

批量型爬蟲有較明確的抓取范圍及抓取目標役衡,目標可能是一段時間,也可能是一批網(wǎng)頁薪棒,一旦完成要求的抓取要求手蝎,則爬蟲就會停止抓取進程,算是完成了此階段批量的抓取任務俐芯。

2)增量型爬蟲棵介,IncrementalCrawler

不同于批量型爬蟲,增量型爬蟲會持續(xù)不斷地抓取網(wǎng)頁吧史,并且要對新抓到的網(wǎng)頁進行更新邮辽。又稱“通用爬蟲”,在搜索業(yè)務內(nèi)贸营,如百度吨述、Google采用的都是增量型爬蟲。

3)垂直型爬蟲钞脂,F(xiàn)ocusCrawler

垂直型爬蟲關(guān)注在某一個固定的專題內(nèi)容或者固定的行業(yè)網(wǎng)頁揣云。在互聯(lián)網(wǎng)行業(yè),存在千萬種行業(yè)分類冰啃,垂直型爬蟲要明確爬蟲哪方面的內(nèi)容邓夕,進而對此行業(yè)內(nèi)進行抓取。一般垂直型搜索引擎阎毅,如攜程焚刚,就會重點抓取出行方面的數(shù)據(jù),不會考慮到食品類別的網(wǎng)頁扇调。

以上三種爬蟲矿咕,技術(shù)難度最大最復雜的當屬增量型爬蟲,也是Google、百度等一般搜索引擎采用的爬蟲類型痴腌。

與批量型相比雌团,增量型爬蟲需要對能發(fā)現(xiàn)的任務網(wǎng)頁進行抓取,而不是關(guān)注在某一范圍或目標上士聪。與垂直型相比锦援,增量型爬蟲需要對全網(wǎng)內(nèi)容進行抓取,而不僅只抓取某一專題內(nèi)容剥悟。

此外灵寺,增量型爬蟲還要考慮到所有抓取下來內(nèi)容的更新,一遍遍地抓取区岗,更新內(nèi)容略板,具體策略見下文。

3 爬蟲的抓取策略

互聯(lián)網(wǎng)上慈缔,所有的網(wǎng)頁可以分為四種:

網(wǎng)頁分類

已下載網(wǎng)頁叮称,即已被爬蟲抓取下來的網(wǎng)頁;

待下載網(wǎng)頁藐鹤,即爬蟲將要抓取的網(wǎng)頁瓤檐;

可知網(wǎng)頁,即爬蟲知道存在但暫時不會去抓取的網(wǎng)頁娱节;

不可知網(wǎng)頁挠蛉,即暗網(wǎng)內(nèi)容,爬蟲都不知道存在的網(wǎng)頁肄满;

爬蟲則是對這四類頁面進行抓取的谴古,具體會根據(jù)不同的策略進行不同的抓取方式。

1)深度優(yōu)先策略稠歉,DepthFirst

深度優(yōu)先策略掰担,指的是爬蟲根據(jù)一個頁面順著抓取下去,即一條路走到黑怒炸。

深度優(yōu)先

如爬蟲從第1個頁面出發(fā)抓取带饱,沿著2-3-4-5,抓取結(jié)束之后横媚,再去抓取頁面6-7纠炮,再去抓取8-9-10月趟。

2)廣度優(yōu)先策略灯蝴,BreadthFirst

廣度優(yōu)先策略,指的是爬蟲在同一個等級上進行抓取孝宗,直到同等級頁面都被抓取完畢之后穷躁,再去抓取下一層級的頁面。

廣度優(yōu)先

如上圖,廣度優(yōu)先策略的抓取順序為橫向的2-3-4问潭,然后是下一層級的5-6-7-8猿诸。

3)大站優(yōu)先策,LargerSite First

大站優(yōu)先策略就很簡單粗暴了狡忙,以站點為單位梳虽,表示這不同的重要性,對爬蟲來說灾茁,會優(yōu)先且更高頻率地去抓取大站窜觉。

以上,三種基本的爬蟲抓取策略北专,各有優(yōu)缺點禀挫。綜合而言,廣度優(yōu)先的策略不太理想拓颓,因為如果只在一個層級抓取语婴,永遠達到不了一些網(wǎng)頁,而深度優(yōu)先的策略驶睦,總能根據(jù)網(wǎng)頁之間的鏈接關(guān)系達到其他的網(wǎng)頁砰左。

在實際應用中,一般都是多種策略混合使用啥繁,比如從待抓取列表中菜职,優(yōu)先抓取大站數(shù)據(jù),在一定廣度范圍內(nèi)深度抓取等旗闽。

4 爬蟲的更新策略

在爬蟲完成第一遍抓取之后酬核,還要考慮到再次抓取的情況,因為網(wǎng)頁的內(nèi)容都是變化的适室,如不能及時抓取嫡意,那么用戶看到的可能還是很久之前的信息,就沒有意義了捣辆。

爬蟲一般會根據(jù)以下三個方面進行更新:

歷史更新頻率

用戶體驗

網(wǎng)頁類型

1)歷史更新頻率

搜索引擎爬蟲在爬蟲某些網(wǎng)頁時蔬螟,會判斷網(wǎng)頁的主體內(nèi)容是否發(fā)生了變化,如果發(fā)現(xiàn)網(wǎng)頁內(nèi)容經(jīng)常更新汽畴,就會增加抓取網(wǎng)頁的幾率旧巾。比如一些時事類的新聞版塊,分分鐘會更新出許多的內(nèi)容忍些,那么爬蟲也在以秒為單位進行實時的抓取鲁猩。但如果爬蟲嘗試抓取的時候,發(fā)現(xiàn)網(wǎng)頁內(nèi)容都是一成不變罢坝,則減少抓取頻率廓握,甚至不再對其抓取。在一個動態(tài)調(diào)整中,爬蟲會發(fā)現(xiàn)最合理的抓取規(guī)律隙券。

2)用戶體驗

互聯(lián)網(wǎng)上有海量的頁面和數(shù)據(jù)男应,但搜索引擎最關(guān)心的是用戶需要的那一小部分。在用戶輸入查詢詞之后經(jīng)常點擊的網(wǎng)頁娱仔,爬蟲則會認為其實用戶體驗良好的頁面沐飘,增加對其的抓取。

3)網(wǎng)頁類型

不同的網(wǎng)頁更新頻率是不同的牲迫,一般網(wǎng)頁分為首頁薪铜、分類頁、內(nèi)容頁恩溅。爬蟲抓取首頁隔箍、分類頁的幾率比內(nèi)容頁要高,因為爬蟲會認為內(nèi)容頁的內(nèi)容更新頻率小脚乡,而首頁和分類頁因為層級淺蜒滩,且更新頻率高,則會受到爬蟲青睞奶稠。

5 爬蟲的部署特點

搜索引擎為了滿足用戶的需求俯艰,需要大量的爬蟲對互聯(lián)網(wǎng)上的網(wǎng)頁進行抓取。對Google或者百度來說锌订,在全球范圍內(nèi)配置了很多數(shù)據(jù)中心竹握,比如Google在香港的數(shù)據(jù)中心,數(shù)據(jù)中心中配備了許多服務器辆飘,服務器上運行著許多爬蟲程序啦辐。可以理解為蜈项,有許多機房芹关,機房有許多臺電腦,電腦上運行著許多程序紧卒,對互聯(lián)網(wǎng)上的網(wǎng)頁進行著抓取侥衬。

圖為美國愛荷華州康瑟爾布拉夫斯的谷歌數(shù)據(jù)中心,類似于咱們超算中心跑芳,超酷的轴总!

數(shù)據(jù)中心

綜上所述,搜索引擎之爬蟲為大家講解了爬蟲的概念博个、種類怀樟、抓取策略、更新策略坡倔、部署特點漂佩,讓大家對爬蟲有個宏觀方面的認識。

當然罪塔,若大家有自己網(wǎng)站的話投蝉,還可以采取不同的策略來對爬蟲進行限制,比如設(shè)置Robots.txt 文件禁止Bing搜索引擎的爬蟲抓取征堪,比如設(shè)置meta robot 信息進行單個頁面的限制等瘩缆。此方面的內(nèi)容不贅述,歡迎大家和我溝通針對于爬蟲可進行的網(wǎng)站優(yōu)化佃蚜。

此外庸娱,我會陸續(xù)給大家更新搜索引擎系列文章,展開講述不同階段不同步驟谐算,搜索引擎做了什么熟尉,為什么做,怎么做的洲脂。

公眾號:產(chǎn)品美景斤儿,只講產(chǎn)品和思考干貨的地方,歡迎隨時交流想法 ~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末恐锦,一起剝皮案震驚了整個濱河市往果,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌一铅,老刑警劉巖陕贮,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異潘飘,居然都是意外死亡肮之,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進店門卜录,熙熙樓的掌柜王于貴愁眉苦臉地迎上來局骤,“玉大人,你說我怎么就攤上這事暴凑÷退Γ” “怎么了?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵现喳,是天一觀的道長凯傲。 經(jīng)常有香客問我,道長嗦篱,這世上最難降的妖魔是什么冰单? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮灸促,結(jié)果婚禮上诫欠,老公的妹妹穿的比我還像新娘涵卵。我一直安慰自己,他們只是感情好荒叼,可當我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布轿偎。 她就那樣靜靜地躺著,像睡著了一般被廓。 火紅的嫁衣襯著肌膚如雪坏晦。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天嫁乘,我揣著相機與錄音昆婿,去河邊找鬼。 笑死蜓斧,一個胖子當著我的面吹牛仓蛆,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播挎春,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼多律,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了搂蜓?” 一聲冷哼從身側(cè)響起狼荞,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎帮碰,沒想到半個月后相味,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡殉挽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年丰涉,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片斯碌。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡一死,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出傻唾,到底是詐尸還是另有隱情投慈,我是刑警寧澤,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布冠骄,位于F島的核電站伪煤,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏凛辣。R本人自食惡果不足惜抱既,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望扁誓。 院中可真熱鬧防泵,春花似錦蚀之、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至肚邢,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間拭卿,已是汗流浹背骡湖。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留峻厚,地道東北人响蕴。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像惠桃,于是被迫代替她去往敵國和親浦夷。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,697評論 2 351

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