反反爬虫技术汇总
反爬策略及反反爬技术
那些阻止爬虫爬取数据的策略称为反爬策略,通常反爬策略都有对应的手段将其破解,称之为反反爬技术。
一、Headers检测
-
反爬策略:
- User-Agent
- Cookie
- Referer
-
反反爬技术:
-
将User-Agent做成列表或字典,每次请求随机获取一个标识
-
将User-Agent做成py文件导入,随机拿取
-
使用第三方库
fake_useragent
,该库是在线获取随机的标识from fake_useragent import UserAgent ua = UserAgent() print(ua.random)
-
二、前端处理
- 反爬策略:通过JavaScript将原本的HTML页面结构改变,从而在程序中无法匹配到需要的内容
- 反反爬技术:
- 通过查看网页源代码或者将其格式化查看结构,根据源码更改xpath或正则
- 考虑IE的UserAgent,返回的数据最为标准
三、IP控制
- 反爬策略:后台程序检测到在一定的时间内同一个IP高频率访问,从而封禁IP
- 反反爬技术:
- 控制爬虫速度,每爬取一个页面之后休眠一定的时间
- 购买开放代理或私密代理
- IP代理池随机访问反爬技术之代理IP
四、异步加载
-
反爬策略:所谓异步加载,就是每滑动到网页底部,再次加载数据,也就是说,网页的数据并不是一次性加载出来的
- 特点:
- 右键 -> 查看网页源码中没有具体数据
- 滚动鼠标滑轮或其他动作时加载
- 特点:
-
反反爬技术:
- F12打开控制台,页面动作抓取网络数据包
- 抓取json文件URL地址
- 控制台中 XHR :异步加载的数据包
- XHR -> QueryStringParameters(查询参数)
五、加密查询参数
- 反爬策略:通过JavaScript加密一些参数
- 反反爬技术:找到JS文件,分析加密算法,然后用python来执行加密的过程,返回加密数据
六、响应处理
- 反爬策略:通过JavaScript对响应内容做处理,从而改变结构
- 反反爬技术:通过正则或者xpath匹配