用Python爬蟲抓取代理IP
不知道大家在訪問網站的時候有沒有遇到過這樣的狀況就是被訪問的網站會給出一個提示,提示的顯示是“訪問頻率太高”,如果在想進行訪問那麼必須要等一會或者是對方會給出一個驗證碼使用驗證碼對被訪問的網站進行解封。之所以會有這樣的提示是因為我們所要爬取或者訪問的網站設定了反爬蟲機制,比如使用同一個IP頻繁的請求網頁的次數過多的時候,伺服器由於反爬蟲機制的指令從而選擇拒絕服務,這種情況單單依靠解封是比較難處理的,所以一個解決的方法就是偽裝本機的IP地址去訪問或者爬取網頁,也就是我們今天所有跟大家所說的代理IP
目前網上有許多代理ip,有免費的也有付費的。免費的雖然不用花錢但有效的代理很少且不穩定,付費的可能會好一點 下面講一下代理IP的試用,將可用ip存入MongoDB,方便下次取出。
執行平臺:Windows
Python版本:Python3.6
IDE: Sublime Text
其他:Chrome瀏覽器
簡述流程為:
步驟1:瞭解requests代理如何使用
步驟2:從代理網頁爬取到ip和埠
步驟3:檢測爬取到的ip是否可用
步驟4:將爬取的可用代理存入MongoDB
步驟5:從存入可用ip的資料庫裡隨機抽取一個ip,測試成功後返回
對於requests來說,代理的設定比較簡單,只需要傳入proxies引數即可。
不過需要注意的是,這裡我是在本機安裝了抓包工具Fiddler,並用它在本地埠8888建立了一個HTTP代理服務(用Chrome外掛SwitchyOmega),即代理服務為:127.0.0.1:8888,我們只要設定好這個代理,就可以成功將本機ip切換成代理軟體連線的伺服器ip了。
這裡我是用來作為測試網站,我們訪問該網頁可以得到請求的有關資訊,其中origin欄位就是客戶端ip,我們可以根據返回的結果判斷代理是否成功。返回結果如下:
接下來我們便開始爬取代理IP,首先我們開啟Chrome瀏覽器檢視網頁,並找到ip和埠元素的資訊。
可以看到,代理IP以表格儲存ip地址及其相關資訊,所以我們用BeautifulSoup提取時很方便便能提取出相關資訊,但是我們需要注意的是,爬取的ip很有可能出現重複的現象,尤其是我們同時爬取多個代理網頁又儲存到同一陣列中時,所以我們可以使用集合來去除重複的ip。
將要爬取頁數的ip爬取好後存入陣列,然後再對其中的ip逐一測試。
這裡就用到了上面提到的requests設定代理的方法,我們使用作為測試網站,它可以直接返回我們的ip地址,測試透過後再存入MomgoDB資料庫。
連線資料庫然後指定資料庫和集合,再將資料插入就OK了。
最後執行檢視一下結果吧
執行了一段時間後,難得看到一連三個測試透過,趕緊截圖儲存一下,事實上是,畢竟是免費代理IP,有效的還是很少的,並且存活時間確實很短,不過,爬取的量大,還是能找到可用的,我們只是用作練習的話,還是勉強夠用的。現在看看資料庫裡儲存的吧。
因為爬取的頁數不多,加上有效ip也少,再加上我沒怎麼爬,所以現在資料庫裡的ip並不多,不過也算是將這些ip給存了下來。現在就來看看怎麼隨機取出來吧。
由於擔心放入資料庫一段時間後ip會失效,所以取出前我重新進行了一次測試,如果成功再返回ip,不成功的話就直接將其移出資料庫。
這樣我們需要使用代理的時候,就能透過資料庫隨時取出來了。
總的程式碼如下:
zhihu.com/people/hdmi-blog
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31555707/viewspace-2641679/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python爬蟲抓取資料,為什麼要使用代理IP?Python爬蟲
- Python爬蟲使用代理proxy抓取網頁Python爬蟲網頁
- Python爬蟲技巧---設定代理IPPython爬蟲
- 實用爬蟲-02-爬蟲真正使用代理 ip爬蟲
- 如何使用代理IP進行資料抓取,PHP爬蟲抓取亞馬遜商品資料PHP爬蟲亞馬遜
- python爬蟲實戰:爬取西刺代理的代理ip(二)Python爬蟲
- Python代理IP爬蟲的簡單使用Python爬蟲
- Python 爬蟲IP代理池的實現Python爬蟲
- 爬蟲的代理ip怎麼用程式碼爬蟲
- Python爬蟲工作對代理IP有哪些需求?Python爬蟲
- python爬蟲利用代理IP分析大資料Python爬蟲大資料
- 代理IP幫助Python爬蟲分析市場Python爬蟲
- python爬蟲之反爬蟲(隨機user-agent,獲取代理ip,檢測代理ip可用性)Python爬蟲隨機
- 如何建立爬蟲代理ip池爬蟲
- 爬蟲使用代理防封IP爬蟲
- 爬蟲如何使用ip代理池爬蟲
- 代理IP如何突破反爬蟲?爬蟲
- 爬蟲代理怎麼選ip爬蟲
- 爬蟲代理IP的使用技巧爬蟲
- Python爬蟲抓取股票資訊Python爬蟲
- 如何用海外HTTP代理設定python爬蟲代理ip池?HTTPPython爬蟲
- Python爬蟲動態ip代理防止被封的方法Python爬蟲
- Python爬蟲需要了解的代理IP知識Python爬蟲
- 快速構建Python爬蟲IP代理池服務Python爬蟲
- 爬蟲代理IP有哪些好處?爬蟲
- Python爬蟲怎麼設定動態IP代理,Python爬蟲要注意哪些事項?Python爬蟲
- python 爬蟲 代理池Python爬蟲
- Python爬蟲代理池Python爬蟲
- selenium+python設定爬蟲代理IP的方法Python爬蟲
- python爬蟲抓取哈爾濱天氣資訊(靜態爬蟲)Python爬蟲
- 爬蟲中代理IP的常見方案爬蟲
- 爬蟲需要代理IP的基本要求爬蟲
- 網路爬蟲怎麼使用ip代理爬蟲
- 代理ip池對爬蟲有多重要爬蟲
- 爬蟲代理IP產品如何選擇爬蟲
- 爬蟲代理IP的三大作用爬蟲
- 爬蟲代理怎麼用爬蟲
- python爬蟲ip代理伺服器的簡要思路-VeCloudPython爬蟲伺服器Cloud