python爬虫怎么使用代理IP

相信很多朋友会遇到,Python爬虫程序里应该怎样来使用代理IP,默认的urlopen是无法使用代理的IP的,今天就来分享一下Python爬虫怎样使用代理IP的经验。

代理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之类的错误,需要检查下授权的问题。