首頁常見問題正文

寫爬蟲應該用多線程還是多進程?為什么?

更新時間:2023-03-13 來源:黑馬程序員 瀏覽量:

IT培訓班

  多進程爬蟲一般也被視為分布式爬蟲的基礎,在單機上可以使用。通常來說大型網(wǎng)站采用分布式來部署服務器,能夠采用多進程同時間在不同的服務器上進行爬取。

  多線程爬蟲的優(yōu)勢如下:

  1)有效利用CPU時間。

  2)針對沒有反爬蟲限制的網(wǎng)站,下載速度可以多倍增加。

  3)極大減小下載出錯、阻塞對抓取速度的影響,整體上提高下載的速度。

1678675089247_寫爬蟲用多線程還是多進程?.jpg

  局限性:

  1)對編碼要求更高,復雜度也隨之上升。

  2)針對存在反爬的網(wǎng)站,速度提升有限。

  3)線程之間的資源競爭更加激烈。

  4)線程越多,每個線程獲得的時間就越少,同時線程的切換更頻繁也帶來額外的開銷。

  在實際的數(shù)據(jù)采集過程中,既考慮網(wǎng)速和響應的問題,也需要考慮自身機器的硬件情況,來決定設置多線程或者多進程。因此,如果需要爬取的數(shù)據(jù)任務量很大,那么可以考慮多進程+多線程的機制。先創(chuàng)建多個進程完成不同的任務,然后每個進程內(nèi)部再創(chuàng)建多個線程,最后完成需要爬取到的數(shù)據(jù)。

分享到:
在線咨詢 我要報名
和我們在線交談!