ProxyHandler处理器(代理设置)
很多网站会检测某一段时间某个IP的访问次数(通过流量统计,系统日志等),如果访问次数过多且不太寻常,IP会被浏览器禁止访问。所以通常采用一些代理器,每个一段时间换一个代理,就算IP被禁止,依然能换IP继续爬虫。
urllib使用ProxyHandler来设置使用代理服务器
代理的数据格式是字典
常见的代理:
- 西刺免费代理IP:http://www.xicidaili.com/
- 快代理:http://www.kuaidaili.com/
- 代理云:http://www.dailiyun.com/
ProxyHandler代理器使用
**原理:**在请求目的网站之前,先请求代理服务器,然后让代理服务器去请求目的网站,代理服务器哦拿到目的网站的数据后,再转发给我们的代码
查看:用代码访问http://httpbin.org网站可以看到我们代码在访问http的一些参数
例如:使用代码访问http://httpbin.org/ip网址可以返回我们的ip地址
from urllib import request
url = 'http://httpbin.org/ip'
resp = request.urlopen(url)
print(resp.read())
使用代理:
登陆西刺网站选择最近的IP地址,使用代理的代码如下:
from urllib import request
handler = request.ProxyHandler({'http':'183.166.71.212:9999'})#'http':'ip:端口'
#2.使用代理构建一个open
opener = request.build_opener(handler)
#3.使用opener发送请求
resp = opener.open(url)
print(resp.read())