ProxyHandler代理
什么是代理
很多网站会检测某一段时间某个IP的访问次数(通过流量统计,系统日志等),如果访问次数多的不像正常人,它会禁止这个IP的访问。所以我们可以设置一些代理服务器,每隔一段时间换一个代理,就算IP被禁止,依然可以换个IP继续爬取。
python代理的使用
使用方法如下:
from urllib import request
url = 'http://httpbin.org/ip'
req = request.Request(url, headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36'})
# print(request.urlopen(req).read())# 不使用代理发送请求
# 1.创建代理对象
handler = request.ProxyHandler({'http':'223.71.167.169:80'})
# 2.使用代理对象,创建一个opener
opener = request.build_opener(handler)
request.install_opener(opener)
# 3.使用opener去发送请求
resp =request.urlopen(req)
print(resp.read().decode('gbk'))
好用的代理库:https://ip.jiangxianli.com/