×

python爬虫应该怎样使用代理IP

渣渣酒 渣渣酒 发表于2021-02-20 09:57:51 浏览1004 评论0

抢沙发发表评论

经常碰到很多朋友问我,Python爬虫程序里应该怎样来使用代理IP,默认的urlopen是无法使用代理的IP的,今天就来分享一下Python爬虫怎样使用代理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的过程中,总会遇到一些错误,需要冷静的分析,沉着的应对,最终解决问题。