反爬笔记
1 服务器反爬的原因
爬虫占总PV高,浪费资源
资源被批量爬走,丧失竞争力
2 服务器常反什么样的爬虫
应届毕业生
创业小公司
没法停止的失控小爬虫
成型的商业对手
抽风的搜索引擎
3 反爬虫领域常见的一些概念
爬虫
反爬虫
误伤
拦截
资源
4 反爬的三个反向
基于身份识别
基于爬虫行为
基于数据加密
5 常见基于身份识别进行反爬
- 基于headers字段进行反爬
1 通过User-Agent字段进行反爬
添加随机UA
2 通过referer字段或者其他字段进行反爬
添加referer字段
3 通过cookie来反爬
进行模拟登录,成功获取cookie之后在进行数据爬取
- 通过请求参数来反爬
1 通过从html静态文件中获取请求数据
仔细分析抓包得到的每一个包,搞清楚请求中间的联系
2 通过发送请求获取请求数据
仔细分析抓包得到的每一个包,搞清楚请求中间的联系,搞清除请求参数的来源
3 通过js生成请求参数
分析js,观察加密的实现过程,通过js2py获取js的执行结果,或者用selenium实现
4 通过验证码来反爬
使用打码平台识别
6 常见基于爬虫行为进行反爬
- 基于请求频繁或总请求数量
1 通过请求ip/账号单位时间内总请求数量进行反爬
对应的通过购买高质量的ip的方法能够解决问题/购买多个账号
2 通过同一ip/账号请求之间的间隔进行反爬
请求之间进行随机等待,模拟真实用户操作,在添加时间间隔后,为了能够高速获取数据,
尽量使用代理池,如果是账号,则将账号请求之间设置随机睡眠
3 通过对请求ip/账号每天请求次数设置值,进行反爬
对应的通过购买高质量的ip的方法能够解决问题/购买多个账号,同时设置请求随机休眠
- 根据爬取行为进行反爬,通常在爬取步骤上作分析
1 通过js实现跳转来反爬
多次抓包获取条状url, 分析规律
2 通过蜜罐(陷阱)获取爬虫ip(或者代理ip),进行反爬
完成爬虫编写后,使用代理批量爬取/仔细分析响应内容结构,找出页面存在的陷阱
3 通过假数据反爬
长期运行,核对数据库中数据同实际页面中数据对应情况,如何存在问题/仔细分析响应内容
4 阻塞任务队列
观察运行过程中请求响应状态/仔细分析源码获取垃圾url生成规律,对url进行过滤
5 阻塞网络io
观察爬虫运行状态/多线程对请求线程计时/发送请求线
6 运维平台综合审计
仔细观察分析,长期运行测试目标网站,检查数据采集速度,多方面处理
7 常见基于数据加密进行反爬
通常的特殊化处理主要指的就是css数据偏移自定义字体/数据加密/数据图片/特殊编码格式等
- 对响应中含有的数据进行特殊处理
1 通过自定义字体来反爬
切换到手机版/解析字体文件进行翻译
2 通过css来反爬
计算css的偏移
3 通过js动态生成数据进行反爬
解析关键js,获得数据生成流程,模拟生成数据
4 通过图片化反爬
通过使用图片解析引擎从图片中解析数据
5 通过编码格式进行反爬
根据源码进行多格式编码,或者真正的编码格式

浙公网安备 33010602011771号