很多网站会检测某一段时间某个ip的访问次数(通过流量统计,系统日志等),如果访问次数多的不像正常人,它会禁止这个ip的访问,所以我们可以设置一些代理服务器,每隔一段时间换一个代理,就算ip被禁止,依然可以换个ip继续爬取,urllib中通过ProxyHandler来设置使用代理服务器,下面代码说明如何使用自定义opener来使用代理:
from urllib import request
#没有使用代理
url='http://httpbin.org/ip'
#resp=request.urlopen(url)
#print(resp.read())
#使用代理
#1.使用ProxyHandler:传入代理构建一个handler
handler=request.ProxyHandler({"http":"136.228.128.14:61158"})
#2.使用上面创建的handler构建一个opener
opener=request.build_opener(handler)
#3.使用opener去发送一个请求
resp=opener.open(url)
print(resp.read())
1.代理的原理:在请求目的服务器之前,先请求代理服务器,然后让代理服务器去请求目的服务器,代理服务器拿到目的服务器的数据后,再转发给我们
2. http://httpbin.org :这个网站可以方便的查看http请求的一些条款
3.常用代理:
网上有很多代理,西制免费代理、快代理等。