我們在抓取目標資料的時候,尤其是資料量比較大的時候,總覺得抓取效率比較慢。那麼,有什麼方法可以提高爬蟲的爬行效率呢?如何提高爬蟲的抓取效率?以下和大家簡單討論如何提升爬蟲的抓取效率。


1.精簡抓取流程,避免重複存取。

在抓取資料的過程中,很大一部分時間是用來等待網路請求的回應的,所以減少不必要的訪問次數可以節省時間,提高抓取效率。 然後需要優化流程,盡可能精簡流程,避免多個頁面重複存取。那麼減肥也是一個非常重要的手段。一般根據網址或id來判斷唯一性,已經爬上去的不用繼續爬了。


2.多執行緒分散式抓取,人多力量大,爬行也是一樣。如果一台機器不夠,就多造幾台,如果不夠,就多造幾台。

分發的第一步不是爬蟲的本質,也不是必須的。對於相互獨立、沒有通訊的任務,可以手動劃分任務,然後在多台機器上執行,這樣就減少了每台機器的工作量,耗時也會翻倍。例如有200萬個網頁要抓取,5台機器可以抓取40萬個不重複的網頁。相對來說,單機耗時縮短了5倍。


如果有需要通訊的情況,例如要爬取的佇列是變化的,那麼這個佇列每次爬取都會發生變化,即使任務被分割,也會出現交叉重複,因為程式運作時每台機器要爬取的隊列都是不一樣的。在這種情況下,只有分散式的,一個主儲存佇列,其他從儲存佇列可以分別取,這樣一個佇列可以共享,互斥的抓取不會重複。

[email protected]