GG資源網

python搭建匿名代理池

python搭建匿名代理池

如果您是本站會員;我們將為您提供技術支持!!!

 

本篇文章給大家帶來的內容是介紹如何用Python搭建匿名代理池?搭建匿名代理池的方法。有一定的參考價值,有需要的朋友可以參考一下,希望對你們有所幫助。

常聽到很多人抱怨自己的IP因爬蟲次數太多而被網站屏蔽,不得不頻繁使用各種代理IP,卻又因為網上的公開代理大部分都是不能使用,而又要花錢花精力去申請VIP代理,幾番波折又遭屏蔽。特此寫一篇如何利用Python搭建代理池的文章,以降低時間及精力成本,實現自動化獲取活躍代理IP的功能。

運作原理

一、 網站代理獲取

1. 爬免費代理網站的IP列表測試是否可用及是否是高匿

2. 若都是,則放進資料庫,否則丟棄。

3. 重複第2步

二、 保證失效的代理能被儘快從代理池中挑出

1. 從爬蟲資料庫獲取IP

2. 測試IP的可用性和匿名性

3. 如果可用且匿名,則保留,否則丟棄。

4. 重複第1步

說明①:可建立一個爬蟲程序守護程序(Daemon),有此方面需要的小夥伴可自行谷歌,在此不多做介紹。

說明②:可建立一個對外代理信息介面,無論你用NodeJS或者Flask/Django或者PHP來寫都沒關係,在此也不多做介紹。

實現:

建議庫: requests, BeautifulSoup, re, sqlite3。

其中,用requests庫獲取代理網站頁面,用BeautifulSoup和re兩庫來進行代理信息獲取,用sqlite3來對這些信息進行存取。

如果必要(如代理網站有反爬蟲策略時),可用PhantomJS替代requests,或用相應庫進行數據清理(如base64解碼)。

下面簡單展示一下各部分的代碼:

首先是選擇多個能爬取代理且不容易被屏蔽IP的網站,此處以proxy-list.org為例:

接下來是一段簡易代理池框架類的代碼,提供代理資料庫的添加、刪除、可連接性檢測、匿名性檢測

下面是對代理池進行去「失效IP」的代碼:

反思

這個項目是我當年用Python練手寫的,以現在的程度再來回顧,邏輯不夠嚴謹,各類功能太過耦合,不少段落需要重寫,因為代碼是在校園網內所跑,所以還需要考慮到網路連接的穩定性,這就造成部分代碼之間的混亂關係。

通過icanhazip.com來檢測代理匿名性的方法或許有效,但卻忽略了X-Forwarded-For的HTTP頭,所以有很大風險,必須改進。

驗證代理池內代理的有效性,需要多線程,目前的方案效率太低。

完整代碼

放在此文章中的是代理池的核心代碼,旨在提供各位讀者能夠自己實現的思路及參考,Ubuntu 16.04及Kali下用Python 2.7測試可運行。

 

由於網站搬家,部分鏈接失效,如無法下載,請聯繫站長!謝謝支持!
1. 帶 [親測] 說明源碼已經被站長親測過!
2. 下載後的源碼請在24小時內刪除,僅供學慣用途!
3. 分享目的僅供大家學習和交流,請不要用於商業用途!
4. 本站資源售價只是贊助,收取費用僅維持本站的日常運營所需!
5. 本站所有資源來源於站長上傳和網路,如有侵權請郵件聯繫站長!
6. 沒帶 [親測] 代表站長時間緊促,站長會保持每天更新 [親測] 源碼 !
7. 盜版ripro用戶購買ripro美化無擔保,若設置不成功/不生效我們不支持退款!
8. 本站提供的源碼、模板、插件等等其他資源,都不包含技術服務請大家諒解!
9. 如果你也有好源碼或者教程,可以到審核區發布,分享有金幣獎勵和額外收入!
10.如果您購買了某個產品,而我們還沒來得及更新,請聯繫站長或留言催更,謝謝理解 !
GG資源網 » python搭建匿名代理池

發表回復

CAPTCHAis initialing...