代理ip
使用代理IP,这是爬虫/反爬虫的第二大招,通常也是最好用的。
很多网站会检测某一段时间某个IP的访问次数(通过流量统计,系统日志等),如果访问次数多的不像正常人,它会禁止这个IP的访问。
所以我们可以设置一些代理服务器,每隔一段时间换一个代理,就算IP被禁止,依然可以换个IP继续爬取。
在urllib.request库中,通过ProxyHandler来设置使用代理服务器,下面通过例子来说明如何使用自定义opener来使用代理:
常用代理:
- 西刺免费代理IP:http://www.xicidaili.com/
- 快代理:http://www.kuaidaili.com/
- 代理云:http://www.dailiyun.com/
查看本地的IP链接
# -*- coding:utf-8 -*-
from urllib import request
url = 'http://httpbin.org/ip'
# 1.使用ProxHandler传入代理构建一个handler
handler = request.ProxyHandler({'https':'112.87.70.90:9999'})
# 2.使用上面创建的handler构建一个opener
opener = request.build_opener(handler)
# 3.使用opener发送请求
resp = opener.open(url)
print(resp.read())
打印输出
b'{\n "origin": "59.51.24.34, 59.51.24.34"\n}\n'
打印输出看IP是否跟原IP是否相同,若相同则IP无效