python爬蟲怎么使用代理IP
相信很多朋友會遇到,Python爬蟲程序里應該怎樣來使用代理IP,默認的urlopen是無法使用代理的IP的,今天就來分享一下Python爬蟲怎樣使用代理IP的經驗。
一,這里以python3為例,首先要導入urllib的request,然后調用ProxyHandler,它可以接受代理IP的參數。
from urllib import request
px=request.ProxyHandler()
二、接著把IP地址以字典的形式放入其中,這個IP地址是我從短效優質代理里隨便提取的一個IP。設置鍵為http,當然有些是https的,然后后面就是IP地址以及端口號。
st.ProxyHandler({'http':'171.11.178.189:38458'})
三、接著再用build_opener()來構建一個opener對象。
opener=request.build_opener(px)
四、然后調用構建好的opener對象里面的open方法來發生請求。實際上urlopen也是類似這樣使用內部定義好的opener.open(),這里就相當于我們自己重寫。
req=request.Request('網址')
res=opener.open(req)
with open('a.html','wb')as f:
f.write(res.read())
五、在使用代理IP的時候,提醒下大家可能會遇到一些錯誤,比如計算機積極拒絕之類的,這有可能是代理IP已經失效了,需要換個有效的代理IP來使用;也有可能遇到403或者407之類的錯誤,需要檢查下授權的問題。