Python爬蟲代理池分享——再也不怕反爬蟲

地址:https://github.com/Python3WebSpider/ProxyPool

為什么需要代理池

在爬取網(wǎng)站信息的過程中,有些網(wǎng)站為了防止爬蟲,可能會(huì)限制每個(gè)ip的訪問速度或訪問次數(shù)。對(duì)于限制訪問速度的情況,我們可以通過time.sleep進(jìn)行短暫休眠后再次爬取。對(duì)于限制ip訪問次數(shù)的時(shí)候我們需要通過代理ip輪換去訪問目標(biāo)網(wǎng)址。所以建立并維護(hù)好一個(gè)有效的代理ip池也是爬蟲的一個(gè)準(zhǔn)備工作。

如何構(gòu)建一個(gè)代理池

安裝

安裝Python

至少Python3.5以上

安裝Redis

安裝好之后將Redis服務(wù)開啟

配置代理池

cd proxypool
進(jìn)入proxypool目錄,修改settings.py文件

PASSWORD為Redis密碼,如果為空,則設(shè)置為None

安裝依賴

pip3 install -r requirements.txt

打開代理池和API

python3 run.py

獲取代理

利用requests獲取方法如下


各模塊功能
  • getter.py

爬蟲模塊

  • class proxypool.getter.FreeProxyGetter

爬蟲類,用于抓取代理源網(wǎng)站的代理,用戶可復(fù)寫和補(bǔ)充抓取規(guī)則。

  • schedule.py
    調(diào)度器模塊

  • class proxypool.schedule.ValidityTester

異步檢測(cè)類,可以對(duì)給定的代理的可用性進(jìn)行異步檢測(cè)。

  • class proxypool.schedule.PoolAdder

代理添加器,用來觸發(fā)爬蟲模塊,對(duì)代理池內(nèi)的代理進(jìn)行補(bǔ)充,代理池代理數(shù)達(dá)到閾值時(shí)停止工作。

  • class proxypool.schedule.Schedule

代理池啟動(dòng)類,運(yùn)行RUN函數(shù)時(shí),會(huì)創(chuàng)建兩個(gè)進(jìn)程,負(fù)責(zé)對(duì)代理池內(nèi)容的增加和更新。

  • db.py

Redis數(shù)據(jù)庫連接模塊

  • class proxypool.db.RedisClient

數(shù)據(jù)庫操作類,維持與Redis的連接和對(duì)數(shù)據(jù)庫的增刪查該

  • error.py

異常模塊

  • class proxypool.error.ResourceDepletionError

資源枯竭異常,如果從所有抓取網(wǎng)站都抓不到可用的代理資源,
則拋出此異常。

  • class proxypool.error.PoolEmptyError

  • 代理池空異常,如果代理池長時(shí)間為空,則拋出此異常。

  • api.py

API模塊,啟動(dòng)一個(gè)Web服務(wù)器,使用Flask實(shí)現(xiàn),對(duì)外提供代理的獲取功能。

  • utils.py

工具箱

  • setting.py

設(shè)置

項(xiàng)目參考

Python爬蟲代理池

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,695評(píng)論 19 139
  • 2017年7月17日,這一天,對(duì)我們這個(gè)家,也許是永遠(yuǎn)值得記住的日子。 我外孫(或外孫女),那天會(huì)像七月流星,帶著...
    言午57閱讀 218評(píng)論 0 0
  • 我早就認(rèn)識(shí)到自己有很大的拖延癥,以至于做起事來總會(huì)優(yōu)柔寡斷,一只拖到不能再拖了才去行動(dòng)。想想,是多么的可怕,原...
    88蘭貓閱讀 674評(píng)論 2 0
  • 我們應(yīng)該在每個(gè)員工的工作臺(tái)上貼一張白板紙,鼓勵(lì)他們寫下自己的“定律”。 這樣做的好處: 1、時(shí)刻提供積極的心理暗示...
    阿不快跑閱讀 183評(píng)論 0 0
  • 我說我沉默寡言,你說你何嘗不是。 望向窗外的玉蘭花,兀自芬芳。隔著萬水千山,終究不過是一個(gè)人的波濤洶涌。 雖然我喜...
    會(huì)想多的姑娘閱讀 225評(píng)論 0 0

友情鏈接更多精彩內(nèi)容