一 : 概念
1. 爬虫: 工程师写脚本去采集对方的数据行为
2.反爬虫: 对方想尽办法不让我用脚本采集
3.反反爬虫:工程师想尽办法突破对方的设置采集了对方的数据的行为
二:反爬虫技巧
1.检测User-Agent 是否为浏览器
2.检测IP的访问频率
3.检测Cookie中的字段
Cookie有服务器生成, 浏览器储存
4. 验证码(随机)
5.参数进行js动态加密4
6.字体加密
三 : 反反爬虫技巧
1.手动构造请求头, 设置User-Agent
2.设置时间间隔
3.禁用Cooike \ 手动粘贴Cookie访问
4. 捕获验证码的条件(云打码, OCR光学识别, 手动验证)
验证码 类型
(1) 图片滑动 (2)数字字母混合 (3) 输入表达式结果 (4)点击对图案 (5)类似于12306的验证码
5. 分析网页, 找到 js 文件,使用 pyexecjs模拟 js 加密
6.对应的找到ttf文件, 研究编码
四 : 爬虫技巧
1. 爬取app 比 爬取web 要简单(app不能使用js加密)
2. 如果请求头(http/https)看不到, 则可能是基于socket的请求
3.常用的抓包工具(charles/fiddler)只能抓取http/https
wireshark 可以抓取任意请求
mitmproxy 抓取手机的框架
4.模拟浏览器行为来抓取请求
python: selenium
nodisjs : puppeteer
5. 可视化爬虫
gerapy :分布式爬虫管理框架
InfluxDb + Grafana
6.app安装包的反编译(安卓比苹果简单)
五:面试题
如果分布式爬虫中有两台电脑死机或没有爬虫, 如何监控?
类似于点名, 定时检索每台电脑是否存活
让其与电脑通过**向我发消息
每台电脑定时通过redis发送特定消息证明电脑存活.否则报警