很多网站会检测某一时间段某个IP的访问次数(通过流量统计,系统日志等),如果访问次数多的不像正常人,它会禁止这个IP的访问

所以我们可以设置一些代理服务器,每隔一段时间换一个代理,就算IP被禁止,依然可以换个IP继续爬取
urllib 中通过 ProxyHandler 来设置代理服务器,下面代码说明如何使用自定义 opener 来代理:

#encoding: utf-8
from urllib import request

#未使用代理
# resp = request.urlopen('http://httpbin.org/get')
# print(resp.read())

#使用代理
url = ("http://httpbin.org/ip")

#使用ProxyHandler,传入代理构建一个handler
handler = request.ProxyHandler({"http":"117.131.99.210:53281"})

#使用handler构建一个opener
opener = request.build_opener(handler)

#使用opener发送请求
resp = opener.open(url)
print(resp.read())

常用代理

西刺免费代理:http://www.xicidaili.com/

快代理:https://www.kuaidaili.com/

备注

一个非常好用的网站http://httpbin.org/ ,访问这个网站后,会返回你的请求参数

最后修改:2018 年 11 月 29 日 03 : 58 PM