python最強(qiáng)的代理池敛瓷,突破IP的封鎖爬取海量數(shù)據(jù)(送PDF丶教程)

一個(gè)強(qiáng)大到超乎你的想象的異步IP池項(xiàng)目——async-proxy-pool

隨著大型網(wǎng)站反扒機(jī)制的增強(qiáng)河哑,更改IP登陸已經(jīng)成為一種最高效的方式,為此打造一款超強(qiáng)IP池項(xiàng)目,采用最新最快的Python技術(shù)——異步(Async )河爹。編寫了一個(gè)免費(fèi)的異步爬蟲代理池匠璧,以 Python asyncio 為基礎(chǔ),充分利用 Python 的異步性能咸这,異步處理比同步處理能提升成百上千倍的效率夷恍,速度堪比GO語言。


項(xiàng)目介紹

本項(xiàng)目通過爬蟲抓取互聯(lián)網(wǎng)上免費(fèi)代理網(wǎng)站的IP媳维,并且進(jìn)行異步檢測(cè)是否可用酿雪,如果可用就放入數(shù)據(jù)庫。定時(shí)對(duì)數(shù)據(jù)庫中的代理進(jìn)行維護(hù)侄刽,然后通過web api的形式供外部使用指黎。

項(xiàng)目運(yùn)行環(huán)境

項(xiàng)目使用了 sanic,一個(gè)異步網(wǎng)絡(luò)框架州丹。所以建議運(yùn)行 Python 環(huán)境為 Python3.5+醋安,并且 sanic 不支持 Windows 系統(tǒng),Windows 用戶可以考慮使用 Ubuntu on Windows墓毒。

總體架構(gòu)


項(xiàng)目主要幾大模塊分別是爬取模塊茬故,存儲(chǔ)模塊,校驗(yàn)?zāi)K蚁鳖,調(diào)度模塊,接口模塊赁炎。

爬取模塊crawler.py

負(fù)責(zé)爬取代理網(wǎng)站醉箕,并將所得到的代理存入到數(shù)據(jù)庫,每個(gè)代理的初始化權(quán)值為 INIT_SCORE徙垫。

存儲(chǔ)模塊database.py

封裝了 Redis 操作的一些接口讥裤,提供 Redis 連接池。

校驗(yàn)?zāi)Kvalidator.py

驗(yàn)證代理 IP 是否可用姻报,如果代理可用則權(quán)值 +1己英,最大值為 MAX_SCORE。不可用則權(quán)值 -1吴旋,直至權(quán)值為 0 時(shí)將代理從數(shù)據(jù)庫中刪除损肛。

調(diào)度模塊scheduler.py

負(fù)責(zé)調(diào)度爬取器和校驗(yàn)器的運(yùn)行。

接口模塊webapi.py

使用 sanic 提供 WEB API (服務(wù)器提供接口)荣瑟。

如何使用


安裝 Redis

項(xiàng)目數(shù)據(jù)庫使用了 Redis治拿,Redis 是一個(gè)開源(BSD 許可)的,內(nèi)存中的數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)系統(tǒng)笆焰,它可以用作數(shù)據(jù)庫劫谅、緩存和消息中間件。所以請(qǐng)確保運(yùn)行環(huán)境已經(jīng)正確安裝了 Redis。安裝方法請(qǐng)參照官網(wǎng)指南捏检。

項(xiàng)目源碼

點(diǎn)擊關(guān)注荞驴、轉(zhuǎn)發(fā)、私信小編"史上最強(qiáng)代理池"贯城,就能免費(fèi)獲取強(qiáng)大的異步爬蟲代理池項(xiàng)目源碼熊楼。

安裝依賴

$ pip install -r requirements.txt

使用API獲取代理

運(yùn)行代碼后,訪問http://127.0.0.1:5000/進(jìn)入主頁冤狡,如果顯示'Welcome'孙蒙,證明成功啟動(dòng)。


訪問http://127.0.0.1:5000/get可以獲取一個(gè)可用代理悲雳。


也可以在程序代碼中用相應(yīng)的語言獲取挎峦,例如:

import requests

from bs4 import BeautifulSoup

import lxml

def get_proxy():

r = requests.get('http://127.0.0.1:5000/get')

proxy = BeautifulSoup(r.text, "lxml").get_text()

return proxy

Sanic 性能測(cè)試


使用 wrk 進(jìn)行服務(wù)器壓力測(cè)試『掀埃基準(zhǔn)測(cè)試 30 秒, 使用 12 個(gè)線程, 并發(fā) 400 個(gè) http 連接坦胶。測(cè)試 http://127.0.0.1:3289/

$ wrk -t12 -c400 -d30s http://127.0.0.1:3289/

Running 30s test @ http://127.0.0.1:3289/

12 threads and 400 connections

Thread Stats Avg Stdev Max +/- Stdev

Latency 34.63ms 12.66ms 96.28ms 58.07%

Req/Sec 0.96k 137.29 2.21k 73.29%

342764 requests in 30.10s, 49.69MB read

Requests/sec: 11387.89

Transfer/sec: 1.65MB

?? Requests/sec: 11387.89

我們看到了什么?平均每秒鐘11387.89個(gè)請(qǐng)求晴楔,就問你們怕不怕顿苇。機(jī)器性能更好一下,就是一波DOS攻擊了税弃。

實(shí)際代理性能測(cè)試

實(shí)測(cè)效果

https://taobao.com(測(cè)試淘寶)

測(cè)試代理: http://localhost:3289/get/20

測(cè)試網(wǎng)站: https://taobao.com/

測(cè)試次數(shù): 1000

成功次數(shù): 984

失敗次數(shù): 16

成功率: 0.984

https://baidu.com(測(cè)試百度)

測(cè)試代理: http://localhost:3289/get/20

測(cè)試網(wǎng)站: https://baidu.com

測(cè)試次數(shù): 1000

成功次數(shù): 975

失敗次數(shù): 25

成功率: 0.975

</pre>

https://zhihu.com(測(cè)試知乎)

測(cè)試代理: http://localhost:3289/get/20

測(cè)試網(wǎng)站: https://zhihu.com

測(cè)試次數(shù): 1000

成功次數(shù): 1000

失敗次數(shù): 0

成功率: 1.0

</pre>

可以看到其實(shí)性能是非常棒的纪岁,成功率極高。

最后则果,想學(xué)習(xí)Python的小伙伴們幔翰!

從0到1完整學(xué)習(xí)資料 視頻 源碼 精品書籍 一個(gè)月經(jīng)典筆記和99道練習(xí)題及答案免費(fèi)獲取

進(jìn)群:984632579?


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市西壮,隨后出現(xiàn)的幾起案子遗增,更是在濱河造成了極大的恐慌,老刑警劉巖款青,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件做修,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡抡草,警方通過查閱死者的電腦和手機(jī)饰及,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來康震,“玉大人旋炒,你說我怎么就攤上這事∏╄荆” “怎么了瘫镇?”我有些...
    開封第一講書人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵鼎兽,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我铣除,道長(zhǎng)谚咬,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任尚粘,我火速辦了婚禮择卦,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘郎嫁。我一直安慰自己秉继,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開白布泽铛。 她就那樣靜靜地躺著尚辑,像睡著了一般。 火紅的嫁衣襯著肌膚如雪盔腔。 梳的紋絲不亂的頭發(fā)上杠茬,一...
    開封第一講書人閱讀 49,749評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音弛随,去河邊找鬼瓢喉。 笑死,一個(gè)胖子當(dāng)著我的面吹牛舀透,可吹牛的內(nèi)容都是我干的栓票。 我是一名探鬼主播,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼愕够,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼逗载!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起链烈,我...
    開封第一講書人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎挚躯,沒想到半個(gè)月后强衡,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡码荔,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年漩勤,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片缩搅。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡越败,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出硼瓣,到底是詐尸還是另有隱情究飞,我是刑警寧澤置谦,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站亿傅,受9級(jí)特大地震影響媒峡,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜葵擎,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一谅阿、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧酬滤,春花似錦签餐、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至嘴脾,卻和暖如春男摧,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背译打。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來泰國打工耗拓, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人奏司。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓乔询,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親韵洋。 傳聞我的和親對(duì)象是個(gè)殘疾皇子竿刁,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 這是一部拍攝于 1928 年的默片,電影幾乎沒有對(duì)白搪缨,只在關(guān)鍵情節(jié)處打出整幅畫面的字幕食拜,好比是影片的必要停頓,不突...
    招財(cái)小能手閱讀 1,079評(píng)論 4 0
  • 我們 我在看海鷗 你在看我 海鷗是我的風(fēng)景 我是你的風(fēng)景 這樣甚好 只是我希望 你的世界更大更遠(yuǎn) 目光更堅(jiān)定 我深...
    張自芳閱讀 403評(píng)論 0 2
  • 長(zhǎng)沙周邊很多景點(diǎn)副编,攸縣的酒埠江是這次郊游目的地负甸。 慢悠悠徒步三個(gè)小時(shí),還好痹届,身體沒任何不適呻待。回來有點(diǎn)晚队腐,只是泡了熱...
    周湘泉閱讀 106評(píng)論 0 1
  • # 我是怎么開發(fā)一個(gè)小型java在線學(xué)習(xí)網(wǎng)站的 一直想做一個(gè)自己的網(wǎng)站(非博客)蚕捉,但是又不知道做什么內(nèi)容的好,又一...
    藍(lán)貓163閱讀 1,091評(píng)論 1 8
  • 人性之惡柴淘,譬如潘拉多盒子迫淹,在開始時(shí)最容易控制秘通。一旦打開盒子,靠自身將難以控制千绪。做到自律的條件給自己設(shè)定底線充易,而且這...
    春到花香處處秀閱讀 144評(píng)論 0 0