ProxyHandler处理器(代理设置)
很多网站会检查某一段时间某个IP的访问次数(通过流量统计,系统日志等),如果访问次数多得不像正常人,它会禁止这个IP的访问。所以我们可以设置一下代理服务器,没隔一段时间换一个代理,就算IP被禁止,依然可以换个IP继续爬取。
常用的代理有:
此处用“快代理”试验:
httpbin:专门测试HTTP,可以返回ip地址等,如需要返回IP地址,输入网址:httpbin.org/ip
快代理上的免费代理:
# -*- coding: utf-8 -*-
from urllib import request
url = 'http://httpbin.org/ip'
# 没用代理
resp1 = request.urlopen(url)
print(resp1.read().decode('utf-8'))
# 使用代理后
# 1 使用ProxyHandler,传入代理构建一个Handler
handler = request.ProxyHandler({"https":"223.241.78.43:8010"})
# 2 使用上面创建的handler构建一个opener
opener = request.build_opener(handler)
# 3 用opener发送一个请求
resp2 = opener.open(url)
print(resp2.read().decode('utf-8'))
总结: