学到这里,已经可以开始实战项目了,多去爬虫,了解熟悉反爬,然后自己总结出一套方法怎么做。
1.服务器反爬的原因
服务器反爬的原因 总结:
1.爬虫占总PV较高,浪费资源
2.资源被批量抓走,丧失竞争力
3.法律的灰色地带
2.服务器常反什么样的爬虫
服务器常反什么样的爬虫 总结:
1.十分低级的应届毕业生
2.十分低级的创业小公司
3.失控小爬虫
4.竞争对手
5.搜索引擎
3.反爬的三个方向
关键在于批量。
3.1基于身份识别的反爬
基于身份识别的反爬 总结:
1.headers
user-agent
referer
cookies
2.请求参数
1.从html文件中提取
2.发送请求获取数据
3.通过js生成
4.通过验证码
3.2基于爬虫行为的反爬
常见基于爬虫行为进行反爬 总结:
1.基于请求频率或总请求数量
通过请求ip/账号单位时间内总请求数量进行反爬
通过同一ip/账号请求之间的间隔进行反爬
通过对请求ip/账号每天请求次数设置阈值进行反爬
2.根据爬取行为进行反爬,通常在爬取步骤上做分析
通过js实现跳转来反爬
通过蜜罐(陷阱)获取爬虫ip(或者代理ip),进行反爬
通过假数据反爬
阻塞任务队列
阻塞网络IO
运维平台审计
3.3基于数据加密的反爬
基于数据加密进行反爬 总结:
1.对响应中含有的数据进行特殊化处理
自定义字体
CSS
js生成
图片
编码格式
4.验证码
4.1验证码的知识
图片验证码 总结:
1.全自动区分计算机和人类的图灵测试
2.防止恶意破解密码、刷票、论坛灌水、刷页。
3.图片验证码在爬虫中的使用场景
注册
登录
频繁发送请求时,服务器弹出验证码进行验证
4.图片验证码的处理方案
手动处理
图像识别引擎解析
打码平台
4.2图像识别引擎
需要引擎安装和python模块安装 。
tesseract下载地址:Index of /tesseract
安装完成之后,简单使用:
python
from PIL import Image
import pytesseract
text = pytesseract.image_to_string(Image.open(r'E:\pythonProject\test.png'))
print(text)
tesseract简单使用与训练(非必要操作):
4.3打码平台
练习打码平台的使用。