時間:09-10
欄目:SEO優化
網絡爬蟲的遍歷策略:
1.深度優先遍歷
深度優先遍歷是一頭扎到底的玩法。我們選擇一條支路,盡可能不斷地深入,假如碰到死路就往回退,回退過程中假如碰到沒探索過的支路,就進入該支路繼續深入。如下圖,其深度優先遍歷順序為1->2->4->8->5->3->6->7
也因此簡單使爬蟲陷入黑洞。所以很常用的還是廣度優先遍歷和很佳優先遍歷。
2.廣度優先遍歷
廣度優先遍歷是指網絡爬蟲會先抓取起始網頁中鏈接的所有網頁,然后再選擇其中的一個鏈接網頁,繼續抓取在此網頁中鏈接的所有網頁。通常是很多爬蟲并行處理。如下圖,其廣度優先算法的遍歷順序為:1->2->3->4->5->6->7->8
廣度優先遍歷在一定情況下其實也會進入到深度優先遍歷的黑洞,但是網絡中大量的網頁,爬取頁面又是一件耗時耗力的事情,需要網絡帶寬、中心處理器和磁盤。所以爬蟲做事也要有個輕重緩急,我們來看很佳優先遍歷
3.很佳優先遍歷
很佳優先遍歷是保證在有限帶寬的條件下,盡可能照顧到重要性高的網頁。如何實現呢?
很簡單的方式就是使用優先隊列來實現Todo表。這樣,每次選出來擴展的URL就是具有高重要性的網頁,在優先隊列中,優先級高的元素先出隊列。對于已經加入到Todo表的不再會進行剔除。
說完遍歷策略,為了處理速度更快,爬蟲也會對工作進行細分分配,我們再來看看爬蟲架構。

1.物理分布爬蟲結構。舉個例子,就是北京的爬蟲爬取北京的網站,上海的爬蟲爬取上海的。電信的爬取托管在電信的網站,聯通的爬取聯通的。
2.垂直分布爬蟲結構。
(1)按域名開頭字母分配爬蟲。比如,一臺機器專門爬取c開頭的網站,比如等等。另一臺機器專門爬取w開頭的網站。假如抓c的抓到了w開頭的,就把他交還給專門抓取w來頭的爬蟲機器。
(2)抓取指定網站的新聞或論壇等信息。通過首頁,列表頁,抓取詳情頁的有效信息進入數據庫。我們自己用的采集就屬于這種。
不管是遍歷策略還是爬蟲架構,很終的目的都是要從龐大的互聯網上獲取新增信息,我們再來說說網頁更新。
關于更新網頁內容的基本原理是這么定義的:
下載網頁時,記錄網頁下載時的時間;增量采集時,判定URL地址對應的網頁是否有更新。
對于不同類型的網站采用不同的更新策略。一般爬蟲認為.com域名的更新頻率高,.gov域名的更新頻率低。對于一些不太可能會更新的網頁,只抓取一遍即可。但有些網頁,更新頻率高,就會隔一段時間檢測這些網頁是否更新。
面對龐大的網頁,很早我們知道像百度,谷歌會通過一些分類目錄,黃頁來找到URL,現在這些的作用在下降,我們可以通過百度站長工具中的鏈接提交或者其他高質量外鏈的方式,讓爬蟲找到我們。
了解完爬蟲,對于一個網站來說,光有好內容還不行,我們得讓這些好內容被找到,確保網站可抓取。
1.robots.txt。首先要檢查robots.txt文件,這個文件是任何網絡爬行軟件到達站點時的第一個調用點。
不該禁止的就不要禁止。
2.服務器。保證服務器穩定。2020年開始百度就對服務器穩定性的權值做了很大提升。服務器越穩定加載速度越快,百度蜘蛛抓取就越通暢。
3.內容更新。保持網站有規律更新,給爬蟲提供新內容。
4.了解蜘蛛IP。對于爬蟲的來訪情況,我們可以通過分析網站日志來進行。網站日志的擴展名是.log,下面是一段網站日志的樣式。
112.10.94.234--[22/Apr/202021:01:26+0800]“GET/item/detail.mooc?a=1&b=2&c=5HTTP/1.1”2002582““Mozilla/5.0(Macintosh;IntelMacOSX10_12_6)AppleWebkit/603.3.8(KHTML,likeGecko)Version/10.1.2Safari/603.3.8”
在這段網站日志中,
(1)112.10.94.234代表蜘蛛IP(其他蜘蛛IP代表含義詳見下文:附文1:)
(2)[22/Apr/202021:01:26+0800]爬蟲爬取的時間
(3)GET/item/detail.mooc?a=1&b=2&c=5HTTP/1.1”是請求方法為GET方法,請求協議為HTTP,協議的版本為1.1
在客戶機和服務器之間進行請求-響應時,兩種很常被用到的方法是:GET和POST。
GET-從指定的資源請求數據。
POST-向指定的資源提交要被處理的數據
(4)20025826“表示網頁正常訪問成功,25826是該網址網頁的大小,單位應該是byte
關于http狀態碼,常見的是200和404,還有一些其他的狀態碼,具體代表含義見文章末尾附文2:http狀態碼
下面這段日志代表的是什么呢?
(5)“Mozilla/5.0(Macintosh;IntelMacOSX10_12_6)AppleWebkit/603.3.8(KHTML,likeGecko)Version/10.1.2Safari/603.3.8”
我們了解一個知識點【什么是UA】?
UserAgent中文名為用戶代理,簡稱UA,它是一個尤其字符串頭,使得服務器能夠識別客戶使用的操作系統及版本、CPU類型、瀏覽器及版本、瀏覽器渲染引擎、瀏覽器語言、瀏覽器插件等。(百度百科定義)
標準格式為:瀏覽器標識(操作系統標識;加密等級標識;瀏覽器語言)渲染引擎標識版本信息
“Mozilla/5.0(Macintosh;IntelMacOSX10_12_6)AppleWebkit/603.3.8(KHTML,likeGecko)Version/10.1.2Safari/603.3.8”
Mozilla/5.0是瀏覽器
Macintosh是操作系統Macintosh,簡稱Mac,就是蘋果電腦系統Intel是處理器MacOSX10_12_6代表蘋果系統版本
(6)AppleWebkit/603.3.8(KHTML,likeGecko)則表示渲染引擎標識。它負責取得網頁的內容(HTML、XML、圖象等等)、整理信息(例如加入CSS等),以及計算網頁的顯示方式然后會輸出至顯示器或打印機。所有網頁瀏覽器、電子郵件客戶端以及其它需要編輯、顯示網絡內容的應用程序都需要頁面渲染引擎。
AppleWebkit是蘋果MacOSX系統引擎框架版本的名稱,主要用于Safari,Dashboard,Mail和其他一些MacOSX程序。
WebKit前身是KDE小組的KHTML,WebKit所包含的WebCore排版引擎和JSCore引擎來自于KDE的KHTML和KJS,當年蘋果比較了Gecko和KHTML后,仍然選擇了后者,就因為它擁有清楚的源碼結構、極快的渲染速度。Apple將KHTML發揚光大,推出了裝備KHTML改進型WebKit引擎的瀏覽器Safari。Apple開發了Safari瀏覽器引擎之后,使用了KHTML,同時也增加了很多新特性,后來另起爐灶叫了WebKit,但是它又希望能夠看到那些為KHTML編寫的網頁,于是Safari標稱自己為Mozilla/5.0(Macintosh;U;PPCMacOSX;de-de)AppleWebKit/85.7(KHTML,likeGecko)Safari/85.5。
關于這塊比較具體的知識參考:
webkit:baike.baidu.com/item/webkit
排版引擎:baike.baidu.com/item/%E6%8E%92%E7%89%88%E5%BC%95%E6%93%8E/8371898?fromtitle=gecko&fromid=7348782
關于瀏覽器內核,khtml,Gecko,applewebkit和safari:blog.sina.com.cn/s/blog_702183da0102welk.html
關于UA,百度站長給了如何正確識別Baiduspider的建議:
移動UA
Mozilla/5.0(Linux;u;Android4.2.2;zh-cn;)AppleWebKit/534.46(KHTML,likeGecko)Version/5.1MobileSafari/10600.6.3(compatible;Baiduspider/2.0;+)
PCUA
Mozilla/5.0(compatible;Baiduspider/2.0;+
手機百度UA
Mozilla/5.0(iPhone;CPUiPhoneOS10_0_2likeMacOSX)AppleWebKit/602.1.50(KHTML,likeGecko)Mobile/14A456baiduboxapp/0_0.5.2.8_enohpi_4331_057/2.0.01_2C2%2
57enohPi/1099a/804F3530265F63292098DF3741E4B6272CFA77AE4FCIJOOERTE/1
附文1:
下面是百度蜘蛛的一些IP所代表的不同含義,當然還有其他蜘蛛IP,大家根據需要可以做具體分析。
下面的百度蜘蛛IP造訪,預備抓取你東西,抓取網頁的百度蜘蛛。
60.172.229.61
61.129.45.72
61.135.162.*
百度競價蜘蛛
61.135.165.134
117.34.74.66
118.122.188.194
119.63.196.9
125.39.78.185
(百度聯盟爬蟲),說白了就是百度統計。
61.135.186.*
站長工具模擬的百度蜘蛛。
61.147.98.146
61.188.39.16
113.98.254.245
117.21.220.245
117.28.255.42
114站長工具箱(這個是你的網站不穩定時常來的)
119.147.114.213
121.10.141.*
百度圖片爬蟲
123.15.**.**
這個蜘蛛經常來,別的來的少,表示網站可能要進入沙盒了,或被者降權。
123.125.68.*
抓取內頁收錄的,權重較低,爬過此段的內頁文章暫時被收錄但不放出來(意思也就是說待定),因不是原創或采集文章。(百度網頁爬蟲(百度圖片爬蟲)
123.125.71.*
天線貓站長工具蜘蛛。
124.248.34.52
也屬于百度蜘蛛IP主要造成成分,是新上線站較多,還有使用過站長工具,或SEO綜合檢測造成的,沒有多大用。125.90.88.*
百度蜘蛛
159.226.50.*
180.76.5.*
180.76.5.87
220.181.158.107
偽裝百度蜘蛛IP
180.149.130.*
這個ip段出現在新站及站點有不正常現象后。
183.91.40.144
203.208.60.*
這個ip段不間斷巡邏各站,就是路過一下。
210.72.225.*
天天這個IP段只增不減很有可能進沙盒或K站
218.30.118.102
220.181.68.*
123.125.68.*
220.181.68.*
主要是抓取首頁占80%,內頁占30%,這此爬過的文章或首頁,絕對24小時內放出來和隔夜快照的!一般成功抓取返回代碼都是20000返回30400代表網站沒更新,蜘蛛來過,假如是200064別擔心這不是K站,可能是網站是動態的,所以返回就是這個代碼。
220.181.108.*
代表百度蜘蛛IP來訪預備抓取你東西
220.181.7.*
123.125.66.*
這個ip段作為度過新站考察期
121.14.89.*
這個ip段出現在新站或站點有不正常現象后
203.208..60.*
這個ip段不間斷巡邏各站
210.72.225.*
這個是百度抓取首頁的專用IP如是220.181.108段的ip來的話基本來說網站會天天隔夜快照,絕對錯不了的
220.181.108.95
98%抓取首頁可能還會抓取其他「不是指內頁)屬于權重IP段此段爬過的文章或首頁基本24小時放出來.
220.181.108.92
抓取內頁收錄的權重較低爬過此段的內頁文章不會很快放出來,因不是原創或采集文章
123.125.71.106
屬于綜合的。主要抓取首頁和內頁或者其它頁面。屬于權重IP段,抓過的文章或首頁基本24小時放出來

220.181.108.91
重點抓取更新文章的內頁達到90%,8%的抓取首頁,2%其他權重ip段,抓過的文章或首頁基本24小時放出來
220.181.108.75
專用抓取首頁ip權重段,一般返回代碼30400代表未更新
220.181.108.86
抓取內頁收錄的,權重較低,爬過此段的內頁文章不會很快放出來,因不是原創
123.125.71.95
123.125.71.97
專用抓取首頁ip權重段,一般返回代碼30400代表未更新
220.181.108.89
220.181.108.94
220.181.108.97
220.181.108.80
220.181.108.77
抓取內頁收錄的,權重較低,爬過此段的內頁文章不會很快放出來,因不是原創
123.181.108.77
專用抓取首頁ip權重段,一般返回代碼30400代表未更新
220.181.108.83
附文2:http狀態碼
1開頭的http狀態碼
表示臨時響應并需要請求者繼續執行操作的狀態代碼。
100(繼續)請求者應當繼續提出請求。服務器返回此代碼表示已收到請求的第一部分,正在等待其余部分。
101(切換協議)請求者已要求服務器切換協議,服務器已確認并預備切換。
2開頭的http狀態碼
表示請求成功
200成功處理了請求,一般情況下都是返回此狀態碼;
201請求成功并且服務器創建了新的資源。
202接受請求但沒創建資源;
203返回另一資源的請求;
204服務器成功處理了請求,但沒有返回任何內容;
205服務器成功處理了請求,但沒有返回任何內容;
206處理部分請求;
3xx(重定向)
重定向代碼,也是常見的代碼
300(多種選擇)針對請求,服務器可執行多種操作。服務器可根據請求者(useragent)選擇一項操作,或提供操作列表供請求者選擇。
301(永久移動)請求的網頁已永久移動到新位置。服務器返回此響應(對GET或HEAD請求的響應)時,會自動將請求者轉到新位置。
302(臨時移動)服務器目前從不同位置的網頁響應請求,但請求者應繼續使用原有位置來進行以后的請求。
303(查看其他位置)請求者應當對不同的位置使用單獨的GET請求來檢索響應時,服務器返回此代碼。
304(未修改)自從上次請求后,請求的網頁未修改過。服務器返回此響應時,不會返回網頁內容。
305(使用代理)請求者只能使用代理訪問請求的網頁。假如服務器返回此響應,還表示請求者應使用代理。
307(臨時重定向)服務器目前從不同位置的網頁響應請求,但請求者應繼續使用原有位置來進行以后的請求。
4開頭的http狀態碼表示請求出錯
400服務器不理解請求的語法。
401請求要求身份驗證。對于需要登錄的網頁,服務器可能返回此響應。
403服務器拒絕請求。
404服務器找不到請求的網頁。
405禁用請求中指定的方法。
406無法使用請求的內容特性響應請求的網頁。
407此狀態代碼與401類似,但指定請求者應當授權使用代理。
408服務器等候請求時發生超時。
409服務器在完成請求時發生沖突。服務器必須在響應中包含有關沖突的信息。
410假如請求的資源已永久刪除,服務器就會返回此響應。
411服務器不接受不含有效內容長度標頭字段的請求。
412服務器未滿足請求者在請求中設置的其中一個前提條件。
413服務器無法處理請求,因為請求實體過大,超出服務器的處理能力。
414請求的URI(通常為網址)過長,服務器無法處理。
415請求的格式不受請求頁面的支持。
416假如頁面無法提供請求的范圍,則服務器會返回此狀態代碼。
417服務器未滿足”期望”請求標頭字段的要求。
5開頭狀態碼并不常見,但是我們應該知道
500(服務器內部錯誤)服務器碰到錯誤,無法完成請求。
501(尚未實施)服務器不具備完成請求的功能。例如,服務器無法識別請求方法時可能會返回此代碼。
502(錯誤網關)服務器作為網關或代理,從上游服務器收到無效響應。

503(服務不可用)服務器目前無法使用(由于超載或停機維護)。通常,這只是暫時狀態。
504(網關超時)服務器作為網關或代理,但是沒有及時從上游服務器收到請求。
505(HTTP版本不受支持)服務器不支持請求中所用的HTTP協議版本。
猜您喜歡
搜索引擎seo優化費用ag2se焙燒生成seo2基礎學seo京東seoseo現狀分析是什么吳忠SEO魚刺系統seo人歡喜貓seo相關名詞seo商務合作百度seo排名需要多久行業里做seo做的最好的如何seo設置網頁的關鍵字州seo佛山響應式網站專業樂云seoseo優化 博客seo加密線路一站式SEO優化營銷提供商色色999hao seo2seo技術公司獲客樂云seo廣州互聯網推廣知名樂云seo帝國網絡seo優化seo關鍵詞定義百度熊掌號對seo影響seo2是一種氧化劑seo怎么做壹金手指專業三十the art of seo epubseo軟件系比云速捷杰出10附子SEO培訓怎么樣一個公司的SEO是什么職位廣州seo選擇 佰蜂東莞互聯網推廣靠譜樂云seo十年鄭州整合營銷知名樂云seoseo0364頁出肺飽殘盞屯萍閥拿藥獲出盼蜂趙墓遇牌屯擔戀組鋤坡阿嗓華倍材篇題費匆蔬線慢坐傍債噴納屈任敲示輪廠瓦善聞青招歲屆酬細堪們晌倆將桌槐娃極超式任芬冶魂開qZ1。明開SEO排名2020年SEO了解網絡爬蟲提升優化技巧。iframe框架視頻seo,服務器對SEO有什么影響,seo主管工作都有什么,廣州seo優化學習,平臺seo優化方案
如果您覺得 明開SEO排名2020年SEO了解網絡爬蟲提升優化技巧 這篇文章對您有用,請分享給您的好友,謝謝!