注册
登录
提问时间:2018/5/23 16:00:57    楼主:未知网友   阅读量:365

经常碰到很多朋友问我,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之类的错误,需要检查下授权对不对……

总之,在使用代理IP的过程中,总会遇到一些错误,需要冷静的分析,沉着的应对,最终解决问题。