清空記錄
歷史記錄
取消
清空記錄
歷史記錄
下圖是蜘蛛抓取系統的基本框架,包括鏈接存儲系統、鏈接選擇系統、 dns解析服務(wù)系統、抓取調度系統、網(wǎng)頁(yè)分析系統、鏈接提取系統、鏈接分析系統、網(wǎng)頁(yè)存儲系統。百度spider就是通過(guò)這個(gè)系統的配合來(lái)完成抓取網(wǎng)頁(yè)的工作。
百度spider的主要爬行策略類(lèi)型
上圖看似簡(jiǎn)單,但百度spider在爬行的過(guò)程中其實(shí)面對的是一個(gè)超級復雜的網(wǎng)絡(luò )環(huán)境。為了讓系統抓取盡可能多的有價(jià)值的資源,并保持系統與實(shí)際環(huán)境的頁(yè)面一致性,而不造成網(wǎng)站體驗的壓力,會(huì )設計很多復雜的抓取策略。以下做簡(jiǎn)單介紹:
1、抓取友好性
互聯(lián)網(wǎng)資源在數量級上是巨大的,這就要求捕獲系統在有限的硬件和帶寬資源下,盡可能比較快地利用帶寬,捕獲盡可能多的有價(jià)值的資源。這就引出了另一個(gè)問(wèn)題,就是被抓取網(wǎng)站的帶寬消耗造成了訪(fǎng)問(wèn)壓力,會(huì )直接影響到被抓取網(wǎng)站的正常用戶(hù)訪(fǎng)問(wèn)行為。因此,在抓取過(guò)程中,需要調控抓取壓力,以達到在不影響網(wǎng)站正常用戶(hù)訪(fǎng)問(wèn)的情況下,盡可能捕捉到有價(jià)值資源的目的。
通常,基本的壓力是基于ip的。這是因為如果是基于域名,可能會(huì )出現一個(gè)域名對應多個(gè)ip(很多大網(wǎng)站)或者多個(gè)域名對應同一個(gè)IP(小網(wǎng)站共享IP)的問(wèn)題。在實(shí)踐中,壓力調節往往是根據ip和域名的各種情況來(lái)進(jìn)行的。同時(shí),站長(cháng)平臺也推出了壓力反饋工具,站長(cháng)可以手動(dòng)調整自己網(wǎng)站上的抓取壓力。這時(shí)候百度蜘蛛會(huì )根據站長(cháng)要求優(yōu)先 爬行壓力調控。
同一個(gè)站點(diǎn)的抓取速度調控一般分為兩類(lèi):一是一段時(shí)間內的抓取頻率;第二,捕捉一段時(shí)間內的流量。同一站點(diǎn)在不同時(shí)間的爬行速度會(huì )有所不同。比如晚上天黑,風(fēng)大的時(shí)候可能更快。也要看具體的站點(diǎn)類(lèi)型。主要思路是錯開(kāi)正常用戶(hù)高峰訪(fǎng)問(wèn)量,不斷調整。對于不同的站點(diǎn),也需要不同的抓取速度。
2、常用抓取返回碼原理圖
簡(jiǎn)單介紹一下百度支持的幾個(gè)返回碼:
1)常見(jiàn)的404**“NOT FOUND”,表示網(wǎng)頁(yè)已經(jīng)過(guò)期,通常會(huì )在庫中刪除。同時(shí),如果spider在短期內再次找到這個(gè)url,它將不會(huì )爬行;
2)503**“服務(wù)不可用”,表示網(wǎng)頁(yè)暫時(shí)無(wú)法訪(fǎng)問(wèn)。通常網(wǎng)站暫時(shí)關(guān)閉,帶寬有限。對于網(wǎng)頁(yè)返回的503狀態(tài)碼,百度蜘蛛不會(huì )直接刪除這個(gè)網(wǎng)址,會(huì )在短時(shí)間內多次訪(fǎng)問(wèn)。如果網(wǎng)頁(yè)已經(jīng)恢復,則正常抓??;如果你繼續返回503,這個(gè)網(wǎng)址仍然會(huì )被認為是一個(gè)無(wú)效的鏈接,并從庫中刪除。
3)403**“禁止”,認為網(wǎng)頁(yè)目前禁止訪(fǎng)問(wèn)。如果是新的url,spider暫時(shí)不會(huì )抓取,短時(shí)間內也會(huì )訪(fǎng)問(wèn)幾次;如果是包含的網(wǎng)址,不會(huì )直接刪除,短時(shí)間內會(huì )被訪(fǎng)問(wèn)幾次。網(wǎng)頁(yè)正常訪(fǎng)問(wèn)的,正常抓??;如果訪(fǎng)問(wèn)仍然被禁止,該網(wǎng)址也將被視為無(wú)效鏈接,并從庫中刪除。
4)301**“長(cháng)久移動(dòng)”,這意味著(zhù)網(wǎng)頁(yè)被重定向到一個(gè)新的網(wǎng)址。如果是站點(diǎn)遷移、域名替換、站點(diǎn)改版,建議使用站長(cháng)平臺的301返回碼和網(wǎng)站改版工具,減少改版造成的網(wǎng)站流量損失。
3、多網(wǎng)址重定向識別
由于各種原因,互聯(lián)網(wǎng)上的一些網(wǎng)頁(yè)具有網(wǎng)址重定向狀態(tài)。為了正常抓取這些資源,蜘蛛需要識別和判斷網(wǎng)址重定向,防止作bi。重定向可以分為三類(lèi):http 30x重定向、元刷新重定向和js重定向。此外,百度還支持Canonical標簽,實(shí)際上可以認為是間接重定向。
4、抓取優(yōu)先級分配
由于互聯(lián)網(wǎng)資源規模的巨大而較快的變化,搜索引擎幾乎不可能捕捉到所有的資源并合理更新以保持一致性。因此,爬行系統需要設計一套合理的爬行優(yōu)先級分配策略。主要包括:深度優(yōu)先遍歷策略、寬度優(yōu)先遍歷策略、 pr優(yōu)先級策略、反鏈策略、社交分享引導策略等等。每種策略各有利弊。在實(shí)踐中,多種策略經(jīng)常結合使用,以達到好的的捕捉效果。
5、過(guò)濾重復的網(wǎng)址
蜘蛛在抓取過(guò)程中需要判斷一個(gè)頁(yè)面是否被抓取過(guò)。如果它還沒(méi)有被抓取,它將抓取網(wǎng)頁(yè)并將其放入抓取的網(wǎng)址集中。判斷是否被抓取主要的是比較快的搜索和比較,還涉及到url規范化識別。例如,一個(gè)url包含大量無(wú)效參數,實(shí)際上是同一個(gè)頁(yè)面,將被視為同一個(gè)url。
6、暗網(wǎng)數據采集
網(wǎng)上有很多搜索引擎暫時(shí)捕捉不到的數據,叫做暗網(wǎng)數據。一方面,網(wǎng)絡(luò )數據庫中存在許多網(wǎng)站的大量數據,蜘蛛很難通過(guò)抓取網(wǎng)頁(yè)獲得完整的內容;另一方面,由于網(wǎng)絡(luò )環(huán)境、,網(wǎng)站本身不符合規范、等等,也會(huì )導致搜索引擎無(wú)法抓取。目前,從黑暗網(wǎng)絡(luò )獲取數據的主要方式仍然是通過(guò)開(kāi)放平臺提交數據,如百度站長(cháng)平臺和百度開(kāi)放平臺。
7、搶防作bi
蜘蛛在爬行過(guò)程中經(jīng)常會(huì )遇到所謂的黑洞或者大量的低質(zhì)量頁(yè)面,這就要求在爬行系統中要設計一個(gè)完善的防作bi系統。例如,分析url特性、,分析頁(yè)面大小和內容、,分析站點(diǎn)大小和相應的抓取大小,等等。
百度spider爬行中涉及的網(wǎng)絡(luò )協(xié)議
剛剛提到百度搜索引擎會(huì )設計復雜的抓取策略。事實(shí)上,搜索引擎和資源提供者之間存在一種相互依賴(lài)的關(guān)系,其中搜索引擎需要站長(cháng)為其提供資源,否則搜索引擎無(wú)法滿(mǎn)足用戶(hù)的檢索需求;網(wǎng)站管理員需要通過(guò)搜索引擎推廣他們的內容,以獲得更多的受眾。蜘蛛爬行系統直接關(guān)系到互聯(lián)網(wǎng)資源提供商的利益。為了實(shí)現搜索引擎和站長(cháng)的雙贏(yíng),雙方在爬行過(guò)程中都必須遵守一定的規范,以方便雙方的數據處理和對接。在這個(gè)過(guò)程中觀(guān)察到的標準也是我們日常調用的一些網(wǎng)絡(luò )協(xié)議。
相關(guān)新聞