除了上篇文章(https://blog.csdn.net/Jeeson_Z/article/details/81409730)提到的 UA检测 外
反爬措施还有 IP检测
IP检测
有些网站当检测到同一个IP连续快速访问时,可能会把这个IP拉黑,封锁掉
爬虫的速度贼快,有极大的可能被网站封锁
IP代理
相当于一个 中介
你把请求给他,他帮你安排不同的IP访问,相当于是很多不同的IP在访问,从而避免被封锁
这个 中介 按质量不同,有免费的和收费的
作为案例选取 免费的 66免费代理网(http://www.66ip.cn/)
例如选用上表第一条 39.135.35.16:80 作为代理(代理得加上 端口号)
依然访问直接放回请求头的工具网站:http://httpbin.org/get
# 导入requests请求库
import requests
# 要访问的网址
url = 'http://httpbin.org/get'
# 填入代理IP和端口
proxy = '39.135.35.16:80'
# 构造完整的代理链接(url)
proxies = {
# HTTP协议的完整url
# 格式:协议+IP+目录
'http': 'http://' + proxy,
# HTTPS协议简单来说就是HTTP协议的安全版
'https': 'https://' + proxy,
}
# proxies参数设置代理
rsp = requests.get(url, proxies=proxies)
# rsp = requests.get(url)
print(rsp.text)
结果如下:(注意:IP可能会不能用,如果不能用,则换一个就好)
维护IP代理池
一个 IP 代理池首先肯定需要很多 IP 地址,所以第一步是要将代理网站给出的 IP 爬取下来
并不是所有的 IP 都能用,所以要先 测试一下
测试完后 保存到数据库