網(wǎng)絡爬蟲是什么意思?詳解網(wǎng)絡爬蟲的分類、組成、工作原理及搜索策略
一、網(wǎng)絡爬蟲是什么意思
網(wǎng)絡爬蟲(英文:Web Crawler或Spider)又稱為網(wǎng)絡蜘蛛、網(wǎng)頁蜘蛛或網(wǎng)絡機器人,是一種按照一定規(guī)則,自動地抓取互聯(lián)網(wǎng)信息的程序或者腳本。網(wǎng)絡爬蟲是為搜索引擎從萬維網(wǎng)上下載網(wǎng)頁的程序,是搜索引擎的重要組成。傳統(tǒng)爬蟲從一個或若干個初始網(wǎng)頁上的URL開始,獲得初始網(wǎng)頁上的URL,在抓取網(wǎng)頁的過程中,不斷從當前頁面上抽取新的URL放入隊列,直到滿足系統(tǒng)的一定停止條件。
二、網(wǎng)絡爬蟲的分類及工作原理
網(wǎng)絡爬蟲按照系統(tǒng)結(jié)構(gòu)和實現(xiàn)技術(shù),大致可以分為以下幾種類型:通用網(wǎng)絡爬蟲(General PURpose Web Crawler)、聚焦網(wǎng)絡爬蟲(Focused Web Crawler)、增量式網(wǎng)絡爬蟲(Incremental Web Crawler)、深度爬蟲(Deep Web Crawler)。 實際的網(wǎng)絡爬蟲系統(tǒng)通常是幾種爬蟲技術(shù)相結(jié)合實現(xiàn)的。
1、通用網(wǎng)絡爬蟲
通用網(wǎng)絡爬蟲又稱全網(wǎng)爬蟲(Scalable Web Crawler),爬行對象從一些種子 URL 擴充到整個 Web,主要為門戶站點搜索引擎和大型 Web 服務提供商采集數(shù)據(jù)。 由于商業(yè)原因,它們的技術(shù)細節(jié)很少公布出來。 這類網(wǎng)絡爬蟲的爬行范圍和數(shù)量巨大,對于爬行速度和存儲空間要求較高,對于爬行頁面的順序要求相對較低,同時由于待刷新的頁面太多,通常采用并行工作方式,但需要較長時間才能刷新一次頁面。 雖然存在一定缺陷,但通用網(wǎng)絡爬蟲適用于搜索引擎搜索廣泛的主題,有較強的應用價值。
*通用爬蟲的工作流程
通用爬蟲主要存在以下幾方面的局限性:
(1)、由于抓取目標是盡可能大的覆蓋網(wǎng)絡,所以爬行的結(jié)果中包含大量用戶不需要的網(wǎng)頁;
(2)、不能很好地搜索和獲取信息含量密集且具有一定結(jié)構(gòu)的數(shù)據(jù);
(3)、通用搜索引擎大多是基于關(guān)鍵字的檢索,對于支持語義信息的查詢和索引擎智能化的要求難以實現(xiàn)。
2、聚焦網(wǎng)絡爬蟲(主題爬蟲)
聚焦網(wǎng)絡爬蟲(Focused Crawler),又稱主題網(wǎng)絡爬蟲(Topical Crawler),是指選擇性地爬行那些與預先定義好的主題相關(guān)頁面的網(wǎng)絡爬蟲。 和通用網(wǎng)絡爬蟲相比,聚焦爬蟲只需要爬行與主題相關(guān)的頁面,極大地節(jié)省了硬件和網(wǎng)絡資源,保存的頁面也由于數(shù)量少而更新快,還可以很好地滿足一些特定人群對特定領域信息的需求。
(1)、主題爬蟲原理
主題爬蟲并不追求大的覆蓋率,也不是全盤接受所有的網(wǎng)頁和URL,它根據(jù)既定的抓取目標,有選擇的訪問萬維網(wǎng)上的網(wǎng)頁與相關(guān)的鏈接,獲取所需要的信息,不僅客服了通用爬蟲存在的問題,而H-返回的數(shù)據(jù)資源更精確。主題爬蟲的基本工作原理是按照預先確定的主題,分析超鏈接和 剛剛抓取的網(wǎng)頁內(nèi)容,獲取下一個要爬行的URL,盡可能保證多爬行與主題相關(guān)的網(wǎng)頁,因此主題爬蟲要解決以下關(guān)鍵問題:1)如何判定一個已經(jīng)抓取的網(wǎng)頁是 否與主題相關(guān);2)如何過濾掉海量的網(wǎng)頁中與主題不相關(guān)的或者相關(guān)度較低的網(wǎng)頁;3)如何有目的、有控制的抓取與特定主題相關(guān)的web頁面信息;4)如何 決定待訪問URL的訪問次序;5)如何提高主題爬蟲的覆蓋度;6)如何協(xié)調(diào)抓取目標的描述或定義與網(wǎng)頁分析算法及候選URL排序算法之問的關(guān)系;7)如何 尋找和發(fā)現(xiàn)高質(zhì)量網(wǎng)頁和關(guān)鍵資源。高質(zhì)量網(wǎng)頁和關(guān)鍵資源不僅可以大大提高主題爬蟲搜集Web頁面的效率和質(zhì)量,還可以為主題表示模型的優(yōu)化等應用提供支持。
(2)、主題爬蟲模塊設計
主題爬蟲的目標是盡可能多的發(fā)現(xiàn)和搜集與預定主題相關(guān)的網(wǎng)頁,其最大特點在于具備分析網(wǎng)頁內(nèi)容和判別主題相關(guān)度的能力。根據(jù)主題爬蟲的 工作原理,下面設計了一個主題爬蟲系統(tǒng),主要有頁面采集模塊、頁面分析模塊、相關(guān)度計算模塊、頁面過濾模塊和鏈接排序模塊幾部分組成,其總體功能模塊結(jié)構(gòu) 如圖2所示。
頁面采集模塊:主要是根據(jù)待訪問URL隊列進行頁面下載,再交給網(wǎng)頁分析模型處理以抽取網(wǎng)頁主題向量空間模型。該模塊是任何爬蟲系統(tǒng)都必不可少的模塊。頁面分析模塊:該模塊的功能是對采集到的頁面進行分析,主要用于連接超鏈接排序模塊和頁面相關(guān)度計算模塊。
頁面相關(guān)度計算模塊:該模塊是整個系統(tǒng)的核心模塊,主要用于評估與主題的相關(guān)度,并提供相關(guān)的爬行策略用以指導爬蟲的爬行過程。URL 的超鏈接評價得分越高,爬行的優(yōu)先級就越高。其主要思想是,在系統(tǒng)爬行之前,頁面相關(guān)度計算模塊根據(jù)用戶輸入的關(guān)鍵字和初始文本信息進行學習,訓練一個頁 面相關(guān)度評價模型。當一個被認為是主題相關(guān)的頁面爬行下來之后,該頁面就被送入頁面相關(guān)度評價器計算其主題相關(guān)度值,若該值大于或等于給定的某閡值,則該 頁面就被存入頁面庫,否則丟棄¨。頁面過濾模塊:過濾掉與主題無關(guān)的鏈接,同時將該URL及其所有隱含的子鏈接一并去除。通過過濾,爬蟲就無需遍歷與主題 不相關(guān)的頁面,從而保證了爬行效率。排序模塊:將過濾后頁面按照優(yōu)先級高低加入到待訪問的URL隊列里。
(3)、主題爬蟲流程設計
主題爬蟲需要根據(jù)一定的網(wǎng)頁分析算法,過濾掉與主題無關(guān)的鏈接,保留有用的鏈接并將其放入等待抓取的URL隊列。然后,它會根據(jù)一定的 搜索策略從待抓取的隊列中選擇下一個要抓取的URL,并重復上述過程,直到滿足系統(tǒng)停止條件為止。所有被抓取網(wǎng)頁都會被系統(tǒng)存儲,經(jīng)過一定的分析、過濾, 然后建立索引,以便用戶查詢和檢索;這一過程所得到的分析結(jié)果可以對以后的抓取過程提供反饋和指導。
*主題爬蟲的工作流程
聚焦網(wǎng)絡爬蟲和通用網(wǎng)絡爬蟲相比,增加了鏈接評價模塊以及內(nèi)容評價模塊。聚焦爬蟲爬行策略實現(xiàn)的關(guān)鍵是評價頁面內(nèi)容和鏈接的重要性,不同的方法計算出的重要性不同,由此導致鏈接的訪問順序也不同。
3、增量式網(wǎng)絡爬蟲
增量式網(wǎng)絡爬蟲(Incremental Web Crawler)是指對已下載網(wǎng)頁采取增量式更新和只爬行新產(chǎn)生的或者已經(jīng)發(fā)生變化網(wǎng)頁的爬蟲,它能夠在一定程度上保證所爬行的頁面是盡可能新的頁面。 和周期性爬行和刷新頁面的網(wǎng)絡爬蟲相比,增量式爬蟲只會在需要的時候爬行新產(chǎn)生或發(fā)生更新的頁面,并不重新下載沒有發(fā)生變化的頁面,可有效減少數(shù)據(jù)下載量,及時更新已爬行的網(wǎng)頁,減少時間和空間上的耗費,但是增加了爬行算法的復雜度和實現(xiàn)難度。增量式網(wǎng)絡爬蟲的體系結(jié)構(gòu)[包含爬行模塊、排序模塊、更新模塊、本地頁面集、爬行 URL 集以及本地頁面URL 集]。
增量式爬蟲有兩個目標:保持本地頁面集中存儲的頁面為最新頁面和提高本地頁面集中頁面的質(zhì)量。 為了實現(xiàn)第一個目標,增量式爬蟲需要通過重新訪問網(wǎng)頁來更新本地頁面內(nèi)容,常用的方法有:
(1)、統(tǒng)一更新法:爬蟲以相同的頻率訪問所有網(wǎng)頁,不考慮網(wǎng)頁的改變頻率;
(2)、個體更新法:爬蟲根據(jù)個體網(wǎng)頁的改變頻率來重新訪問各頁面;
(3)、基于分類的更新法:爬蟲根據(jù)網(wǎng)頁改變頻率將其分為更新較快網(wǎng)頁子集和更新較慢網(wǎng)頁子集兩類,然后以不同的頻率訪問這兩類網(wǎng)頁。
4、Deep Web爬蟲(深度爬蟲)
Web 頁面按存在方式可以分為表層網(wǎng)頁(Surface Web)和深層網(wǎng)頁(Deep Web,也稱 Invisible Web Pages 或 Hidden Web)。 表層網(wǎng)頁是指傳統(tǒng)搜索引擎可以索引的頁面,以超鏈接可以到達的靜態(tài)網(wǎng)頁構(gòu)成的 Web 頁面。Deep Web 是那些大部分內(nèi)容不能通過靜態(tài)鏈接獲取的、隱藏在搜索表單后的,只有用戶提交一些關(guān)鍵詞才能獲得的 Web 頁面。例如那些用戶注冊后內(nèi)容才可見的網(wǎng)頁就屬于 Deep Web。 2000 年 Bright Planet 指出:Deep Web 中可訪問信息容量是 Surface Web 的幾百倍,是互聯(lián)網(wǎng)上最大、發(fā)展最快的新型信息資源。
*深度爬蟲流程圖
Deep Web 爬蟲體系結(jié)構(gòu)包含六個基本功能模塊 (爬行控制器、解析器、表單分析器、表單處理器、響應分析器、LVS 控制器)和兩個爬蟲內(nèi)部數(shù)據(jù)結(jié)構(gòu)(URL 列表、LVS 表)。 其中 LVS(Label Value Set)表示標簽/數(shù)值集合,用來表示填充表單的數(shù)據(jù)源。
三、網(wǎng)絡爬蟲的組成
在網(wǎng)絡爬蟲的系統(tǒng)框架中,過程由控制器,解析器,資源庫三部分組成??刂破鞯闹饕ぷ魇秦撠熃o多線程中的各個爬蟲線程分配工作任務。解析器的主要工作是下載網(wǎng)頁,進行頁面的處理,主要是將一些JS腳本標簽、CSS代碼內(nèi)容、空格字符、Html標簽等內(nèi)容處理掉,爬蟲的基本工作是由解析器完成。資源庫是用來存放下載的網(wǎng)頁資源,一般都采用大型的數(shù)據(jù)庫存儲,并對其建立索引。
1、控制器
控制器是網(wǎng)絡爬蟲的中央控制器,它主要是負責根據(jù)系統(tǒng)傳過來的URL鏈接,分配線程,然后啟動線程調(diào)用爬蟲爬取網(wǎng)頁的過程。
2、解析器
解析器是負責網(wǎng)絡爬蟲的主要部分,其負責的工作主要有:下載網(wǎng)頁的功能,對網(wǎng)頁的文本進行處理,過濾功能,抽取特殊HTML標簽的功能,分析數(shù)據(jù)的功能。
3、資源庫
主要是用來存儲網(wǎng)頁中下載下來的數(shù)據(jù)記錄的容器,并提供生成索引的目標源。中大型的數(shù)據(jù)庫產(chǎn)品有:Oracle、SQL Server等。
四、網(wǎng)絡爬蟲的搜索策略
為了提高工作效率,通用網(wǎng)絡爬蟲會采取一定的爬行策略。 常用的爬行策略有:IP地址搜索策略、深度優(yōu)先策略及廣度優(yōu)先策略。
1、IP地址搜索策略
IP地址搜索策略是先給爬蟲一個起始的IP地址,然后根據(jù)IP地址以遞增的方式搜索本IP地址段后的每一個地址中的文檔,它完全不考慮各文檔中指向其它Web站點的超級鏈接地址。這種搜索策略的優(yōu)點是搜索比較全面,因此能夠發(fā)現(xiàn)那些沒被其它文檔引用的新文檔的信息源;但是缺點是不適合大規(guī)模搜索。
2、深度優(yōu)先策略:其基本方法是按照深度由低到高的順序,依次訪問下一級網(wǎng)頁鏈接,直到不能再深入為止。 爬蟲在完成一個爬行分支后返回到上一鏈接節(jié)點進一步搜索其它鏈接。 當所有鏈接遍歷完成后,爬行任務結(jié)束。 這種策略比較適合垂直搜索或站內(nèi)搜索,但爬行頁面內(nèi)容層次較深的站點時會造成資源的巨大浪費。
3、廣度優(yōu)先策略:此策略按照網(wǎng)頁內(nèi)容目錄層次深淺來爬行頁面,處于較淺目錄層次的頁面首先被爬行。 當同一層次中的頁面爬行完畢后,爬蟲再深入下一層繼續(xù)爬行。 這種策略能夠有效控制頁面的爬行深度,避免遇到一個無窮深層分支時無法結(jié)束爬行的問題,實現(xiàn)方便,無需存儲大量中間節(jié)點,不足之處在于需要較長時間才能爬行到目錄層次較深的頁面。
五、網(wǎng)絡爬蟲的基本步驟
1、首先選取一部分種子URL;
2、將這些URL放入待抓取URL隊列;
3、從待抓取URL隊列中取出待抓取的URL,解析DNS,得到主機的IP,并將URL對應的網(wǎng)頁下載下來,存儲到已下載網(wǎng)頁庫中,此外,將這些URL放入已抓取URL隊列;
4、分析已抓取到的網(wǎng)頁內(nèi)容中的其他URL,并將URL放入待抓取URL隊列,從而進入下一個循環(huán)。
六、網(wǎng)絡爬蟲的應用場景
1、搜索引擎抓取網(wǎng)頁信息
大家常用的搜索引擎的首要工作流程就是利用網(wǎng)絡爬蟲去爬取各個網(wǎng)站的頁面。以百度蜘蛛為例,一旦有網(wǎng)站的頁面更新了,百度蜘蛛就會出動,然后把爬取的頁面信息搬回百度,再進行多次的篩選和整理。最終在大家搜索相關(guān)信息的時候,通過排名呈現(xiàn)給大家??梢哉f,沒有網(wǎng)絡爬蟲,我們使用搜索引擎查詢資料的時候,就不會那么便捷、全面和高效。
2、爬取需要對數(shù)據(jù)進行統(tǒng)計
冷數(shù)據(jù)啟動是豐富數(shù)據(jù)的主要工具,新業(yè)務開始時,由于剛起步,所以沒有多少數(shù)據(jù),此時就需要爬取其他平臺的數(shù)據(jù)來填充我們的業(yè)務數(shù)據(jù)。比如說,如果我們想做一個類似大眾點評這樣的平臺,一開始沒有商戶等信息,就需要去爬取大眾,美團等商家的信息來填充數(shù)據(jù),比如天眼查,企查查,西瓜數(shù)據(jù)等等。
3、出行類軟件通過爬蟲搶票
如果問網(wǎng)絡爬蟲技術(shù)應用最多的領域是什么?那一定是出行行業(yè)。相信每逢春運或是節(jié)假日,大家都用過一些搶票的軟件,就為了獲得一張機票或者是一張火車票,而這種出行類軟件正是運用網(wǎng)絡爬蟲技術(shù)來達到搶票的目的。像搶票軟件這樣的網(wǎng)絡爬蟲,會不停地爬取交通出行的售票網(wǎng)站,一旦有票就會點擊拍下來,放到自己的網(wǎng)站售賣。如果一定時間內(nèi)沒有人購買,就會自動退票。然后又通過網(wǎng)站爬蟲把票拍下來,到時間又繼續(xù)退票,如此反復循環(huán)。
4、聚合平臺整合信息進行比較。
如今,出現(xiàn)了很多比價平臺、聚合電商還有返利平臺等,這類聚合平臺的本質(zhì)都是提供橫向數(shù)據(jù)比較,聚合服。比如說電商中經(jīng)常需要有一種比價系統(tǒng),從各大電商平臺,如拼多多,淘寶,京東等抓取同一個商品的價格信息,以給用戶提供最實惠的商品價格,這樣就需要利用網(wǎng)絡爬蟲從各大電商平臺爬取信息。
七、主流搜索引擎爬蟲介紹
1、BaiduSpider(百度蜘蛛)
常見的百度蜘蛛有:Baiduspider 和 Baiduspider-image(抓取圖片)。國內(nèi)網(wǎng)站大多數(shù)流量都來自百度,所以推薦放行。
百度還有其它幾個蜘蛛:
Baiduspider-video(抓取視頻)
Baiduspider-news(抓取新聞)
Baiduspider-mobile(抓取wap)
百度蜘蛛介紹:http://www.baidu.com/search/spider.html
2、Googlebot(谷歌蜘蛛)
常見的谷歌蜘蛛有:Googlebot,還有一個 Googlebot-Mobile ,不是很常見,看名字應該是抓取 wap 頁面的。世界第一大搜索引擎,推薦放行。
谷歌蜘蛛鏈接:http://www.google.com/bot.html
3、360Spider(360蜘蛛)
一個十分"勤奮抓爬"的蜘蛛。
360蜘蛛IP:https://www.so.com/help/spider_ip.html
4、Sogou web spider(搜狗蜘蛛)
搜狗公司還有其它幾個蜘蛛:Sogou News Spider、Sogou inst spider、Sogou spider2、Sogou blog、Sogou Orion spider、Sogou web spider。
搜狗蜘蛛爬蟲:http://www.sogou.com/docs/help/webmasters.htm
5、Bingbot(必應蜘蛛)
必應是微軟的搜索引擎,微軟的IE瀏覽器和Edge瀏覽器會默認使用該搜索引擎,而且占有率也還可以,不建議屏蔽。
必應蜘蛛爬蟲:http://www.bing.com/bingbot.htm
6、Sosospider(SOSO蜘蛛)
騰訊soso,目前搜狗公司管理。
soso蜘蛛爬蟲:http://help.soso.com/webspider.htm
7、Yahoo Slurp China(雅虎中國)或 Yahoo! Slurp(雅虎英文)
雅虎蜘蛛爬蟲:
雅虎中國:http://misc.yahoo.com.cn/help.html
雅虎英文:http://help.yahoo.com/help/us/ysearch/slurp
8、MSNBot,MSNot-media(MSN蜘蛛)
MSNBOT應該是 bing 搜索的蜘蛛,MSN和bing是一家的,可以只保留 Bingbot。
MSN蜘蛛爬蟲:http://search.msn.com/msnbot.htm
9、YisouSpider(一搜蜘蛛/神馬搜索)
神馬搜索是UC和阿里2013年已經(jīng)成立合資公司推出的移動搜索引擎。
該蜘蛛抓取頻率還是很高的,很多人并不看好,不過如果屏蔽的話,會損失 UC瀏覽器的流量來源。自己斟酌吧!
10、還有一些蜘蛛,不會給網(wǎng)站帶來什么流量,站長看是否屏蔽。
YoudaoBot(有道蜘蛛):網(wǎng)易有道的蜘蛛,并不會帶來流量。
JikeSpider(即刻蜘蛛):"即刻搜索"是由人民搜索網(wǎng)絡股份公司于2011年6月20日推出的通用搜索引擎平臺。
即刻蜘蛛:http://shoulu.jike.com/spider.html
ToutiaoSpider(頭條號):今日頭條的頭條號蜘蛛,不能帶來流量,屏蔽好啦。
來源:http //web toutiao com/media_cooperation
除了上述的爬蟲,其他的就直接毫不猶豫的禁掉。
總結(jié)
優(yōu)化猩SEO:在信息大爆炸的時代,網(wǎng)絡爬蟲可以代替手工做很多事情,比如可以用于做搜索引擎,也可以爬取網(wǎng)站上面的圖片等,網(wǎng)絡爬蟲可以更高效率地利用好互聯(lián)網(wǎng)中的有效信息。
參考鏈接:
網(wǎng)絡爬蟲_百度百科
https://baike.baidu.com/item/%E7%BD%91%E7%BB%9C%E7%88%AC%E8%99%AB/5162711
網(wǎng)絡爬蟲 - MBA智庫百科
https://wiki.mbalib.com/wiki/%E7%BD%91%E7%BB%9C%E7%88%AC%E8%99%AB
2019年搜索引擎蜘蛛爬蟲名稱最新整理總匯-騰訊云
https://cloud.tencent.com/developer/article/1537951
網(wǎng)絡爬蟲是干什么的?有哪些應用場景?-博學谷
https://www.boxuegu.com/news/3975.html
修改于2023-06-25
想了解更多SEO百科的內(nèi)容,請訪問:SEO百科