小明突然想通过爬虫爬取一些图片和数据,于是他写了一个爬虫V1.0
-发送HTTP request
-解析HTML
大明是此网站的维护员,发现了某些奇怪的ip ,于是有了反爬虫v1.0
-固定ip频繁访问
-userAgent是javaClient
-没有Referer
于是小明爬虫v1.1
- userAgent:模仿google,百度爬虫 -模仿游览器:加入referer,轮换Cookie(js库,random userAgent)
- 分布式云端部署
接着大明的反爬虫v1.1
- 设置单个ip访问频率
- 封锁来自云端的ip
- 验证google,百度爬虫ip是否真实,建立白名单
小明不服啊:爬虫v2.0
- 随机1-5秒爬一次,每个10次休息几秒
- 只在早上或者深夜爬取
- 使用proxy,轮换ip:购买ip或者TOR
大明也不是吃素的,任你花样百出,我自横刀不动,反爬虫v2.0:
- 每隔几个小时,弹出验证码
小明爬虫v3
- 利用图像识别技术得到验证码:machine learning
大明终极大招:反爬虫v3
- 数据不直接嵌入HTML,而是通过前端异步
小明 爬虫v4
- 放弃HttpClient的爬虫
- 使用内置Headless游览器的爬虫,来计算正确结果Selenium
大明我累了,能不能别进化了,
- 混入虚假数据
- 关键数据要求two-factor authentication
- 蜜罐诱捕 css display:none