这里写自定义目录标题
一、反爬
1. 反爬原因
- 爬虫占PV比例高,费钱(三月爬虫
- 资源被批量抓走
- GREY
2. 服务器常反爬虫
- 低级的-不管服务器压力
- 失控的小爬虫
- 成型的商业对手
- 抽风搜索引擎
3. 一些概念
- 爬虫:获取数据的任何技术手段 ,批量
- 反爬虫:阻止获取数据的任何技术手段 ,批量
- 误伤:错将普通用户为爬虫
- 拦截
- 资源:机器 人力
4. 反爬方向
- 基于身份识别进行反爬
- 基于爬虫行为进行反爬
- 基于数据加密进行反爬
4.1 基于身份识别进行反爬
headers
- User-Agent
- referer
- cookies
请求参数
- html静态文件中获取
- 发送请求获取数据
- js生成
- 验证码
4.2 基于爬虫行为进行反爬
请求频率
- 请求ip单位时间请求数量——购买多个账号
- 请求间隔——随机休眠
- 请求次数阈值
爬取步骤
- 通过js实现跳转反爬——抓包分析
- 通过蜜罐获取爬虫ip——找缺陷
- 通过假数据反爬
- 阻塞任务队列
- 阻塞网络IO——多线程
4.3 基于数据加密进行反爬
对响应中含有的数据进行特殊化处理
- 特殊字体
- css位移
- 图片
- 编码格式
二、验证码
1. 图片验证码
- 验证码 CAPTCHA
- 区分人工、工具
2. 图片识别引擎
- 安装tesseract.exe
- 安装python模块pillow
3. 打码平台
会使用接口
三、js解析
1.定位
- 定位 发送请去的包
- search关键字定位
- 元素绑定的事件监听函数定位
2. 加密步骤、py模拟
法一:第三方js加载模块
模块js2py、pyv8 execjs一个翻译工具
人人网登录抓包
包:login 向服务器发送请求 post ,做验证
查看post中的数据,密码做过处理
搜索,无果
切换到手机端(login以上的包 都没显示了
xhr
属于ajax请求(rkey、clog
如何获取加密后的密码——get(rkey的url)就可了
定位加密文件
通过clog的initiator
celllog.js
查找rkey
检查登录没触登录后,才触发函数
登录按钮绑定了事件——Event Listeners
——绑定回调函数
找到加密函数,遇到的函数直接ctrl F定位
# 分析需要的:
# t这个对象
# 导入函数
t.password = t.password.split("").reverse().join(""),
setMaxDigits(130);
var 0 =nes RSAKeyPair(n.e,"",n.n),
r = encryptedString