對於大規模爬蟲來說,效率是最核心的問題,沒有效率,就沒有意義。沒有哪個公司或者個人願意等乙個月或者幾個月才能爬取幾十萬上百萬的頁面。所以,對於大規模爬蟲來說,優化流程、提公升效率是十分重要的。
單次爬蟲任務的主要耗時在於網路請求等待響應,所以能減少網路請求就儘量減少請求,既能減少目標**的壓力,也能減少**伺服器的壓力,同時還能減少自己的工作量,提高工作效率。
大部分**並不是嚴格意義上互不交叉的樹狀結構,而是多重交叉的網狀結構,所以從多個入口深入的網頁會有很多重複,一般根據url或者id進行唯一性判別,爬過的就不再繼續爬了。一些資料如果可以在乙個頁面內獲取到,也可以在多個頁面下獲取到,那就選擇只在乙個頁面內獲取。
大量爬蟲是乙個io阻塞的任務,因此採用多執行緒的併發方式可以有效地提高整體速度。多執行緒可以更好地提高資源利用率,程式設計也更加堅定,程式響應也更快。
上面三點都做到極致了,但是單機單位時間內能爬取到的網頁數量還不足以達到目標,在指定時間內不能及時的完成任務,那麼只能多機器來同時進行爬蟲任務了,這就是分布式爬蟲。比如有100w個頁面待爬,可以用5臺機器分別爬互不重複的20w個頁面,相對單機耗時就縮短了5倍。
做好以上四點,基本上可以將爬蟲的效率提公升一大截,既減少工作量又節約時間,同時也可以減少反爬蟲策略的觸發,一舉多得。
如何提高有效工作效率
二 如何才能有效提高工作效率 小林是一家外貿公司的業務助理,她感覺每一天都像打仗一樣,一整天都非常忙碌,手頭的事情永遠做不完。但是,每天等到晚上,卻發現其實好像也沒做幾件事情,工作的時候,經常被同事打斷,又或者事情自己做了一半,又去吃東西喝水,又看手機。她很想集中精力把一件事情做好,卻不得不被各種事...
如何提高工作效率
如何使生產力加倍呢?美國職業生涯規劃與時間管理專家brian tracy,集20年實務工作經驗與研究,發現能使你生產力加倍的7個工作秘訣 一 全心投入工作 work harder at what you do 當你工作時,一定要全心投入,不要浪費時間,不要把工作場所當成社交場合。光這個秘訣,如果你能...
如何提高團隊的工作效率
上周五老闆召集我們幾個負責人討論 如何提高團隊的工作效率和技能 大家說的都非常好,每個人都有自己的見解和思路,我也說了我的一些想法,由於討論太突然,沒有特別認真的準備,思路不是非常調理。這兩天我又好好思考了一下,把自己的思路整理一下,與大家分享。看到這個命題,我非常的高興,因為這才是如何提高創造價值...