python爬蟲怎么使用代理IP
相信很多朋友會遇到,Python爬蟲程序里應(yīng)該怎樣來使用代理IP,默認(rèn)的urlopen是無法使用代理的IP的,今天就來分享一下Python爬蟲怎樣使用代理IP的經(jīng)驗(yàn)。

一,這里以python3為例,首先要導(dǎo)入urllib的request,然后調(diào)用ProxyHandler,它可以接受代理IP的參數(shù)。
from urllib import request
px=request.ProxyHandler()
二、接著把IP地址以字典的形式放入其中,這個(gè)IP地址是我從短效優(yōu)質(zhì)代理里隨便提取的一個(gè)IP。設(shè)置鍵為http,當(dāng)然有些是https的,然后后面就是IP地址以及端口號。
st.ProxyHandler({'http':'171.11.178.189:38458'})
三、接著再用build_opener()來構(gòu)建一個(gè)opener對象。
opener=request.build_opener(px)
四、然后調(diào)用構(gòu)建好的opener對象里面的open方法來發(fā)生請求。實(shí)際上urlopen也是類似這樣使用內(nèi)部定義好的opener.open(),這里就相當(dāng)于我們自己重寫。
req=request.Request('網(wǎng)址')
res=opener.open(req)
with open('a.html','wb')as f:
f.write(res.read())
五、在使用代理IP的時(shí)候,提醒下大家可能會遇到一些錯(cuò)誤,比如計(jì)算機(jī)積極拒絕之類的,這有可能是代理IP已經(jīng)失效了,需要換個(gè)有效的代理IP來使用;也有可能遇到403或者407之類的錯(cuò)誤,需要檢查下授權(quán)的問題。