python网络爬虫系列(二)——ProxyHandler处理器实现代理IP
生活随笔
收集整理的這篇文章主要介紹了
python网络爬虫系列(二)——ProxyHandler处理器实现代理IP
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
ProxyHandler處理器(代理):
很多網站會檢測某一段時間某個IP的訪問次數(通過流量統計,系統日志等),如果訪問次數多的不像正常人,它會禁止這個lP的訪問。
所以我們可以設置一些代理服務器,每隔一段時間換一個代理,就算IP被禁止,依然可以換個IP繼續爬取。
urllib中通過ProxyHandler來設置使用代理服務器,下面代碼說明如何使用自定義opener來使用代理
- 使用urllib.request.ProxyHandler,傳入一個代理,這個代理是一個字典,字典的key依賴于代理服務器能夠接收的類型,一般是http或者https,值是ip:port。
- 使用上一步創建的handler,以及request.build_opener創建一個opener對象。
- 使用上一步創建的opener,調用open函數,發起請求。
免費代理網站:
- 西刺免費代理:http://www.xicidaili.com/
- 快代理:https://www.kuaidaili.com/free/
- 代理云:http://www.dailiyun.com/
示例代碼如下:
from urllib import request# 沒有使用代理的本機外網ip地址為120.229.8X.XX url = 'http://www.httpbin.org/ip' resp = request.urlopen(url) print(resp.read()) # 120.229.8X.XX# 使用代理的 # 1、使用ProxyHandler,傳入代理,構建一個handler handler = request.ProxyHandler({'http':'122.136.212.132:53281'})# 2、使用上面創建的handler構建一個opener opener = request.build_opener(handler)# 3、使用opener去發送一個請求 resp1 = opener.open(url) print(resp1.read())總結
以上是生活随笔為你收集整理的python网络爬虫系列(二)——ProxyHandler处理器实现代理IP的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Nodejs 中的包、npm 、第三方模
- 下一篇: Web框架——Flask系列之Jinja