天天看點

Python爬蟲:第六章 高性能異步爬蟲 學習大綱 (20)高性能異步爬蟲

第六章 高性能異步爬蟲

  • 高性能異步爬蟲

高性能異步爬蟲

目的:在爬蟲中使用異步實作高性能的資料爬取操作。

異步爬蟲的方式
- 1.多線程,多程序(不建議):
    好處:可以為相關阻塞的操作單獨開啟線程或者程序,阻塞操作就可以異步執行。
    弊端:無法無限制的開啟多線程或者多程序。
- 2.線程池、程序池(适當的使用):
    好處:我們可以降低系統對程序或者線程建立和銷毀的一個頻率,進而很好的降低系統的開銷。
    弊端:池中線程或程序的數量是有上限。

- 3.單線程+異步協程(推薦):
event_loop:事件循環,相當于一個無限循環,我們可以把一些函數注冊到這個事件循環上,
當滿足某些條件的時候,函數就會被循環執行。

coroutine:協程對象,我們可以将協程對象注冊到事件循環中,它會被事件循環調用。
我們可以使用 async 關鍵字來定義一個方法,這個方法在調用時不會立即被執行,而是傳回
一個協程對象。

task:任務,它是對協程對象的進一步封裝,包含了任務的各個狀态。

future:代表将來執行或還沒有執行的任務,實際上和 task 沒有本質差別。

async 定義一個協程.

await 用來挂起阻塞方法的執行。