学习提升模版

16.常见的反爬手段和解决思路

2020-07-24  本文已影响0人  M_小七

常见的反爬手段和解决思路

学习目标
  1. 了解 服务器反爬的原因
  2. 了解 服务器常反什么样的爬虫
  3. 了解 反爬虫领域常见的一些概念
  4. 了解 反爬的三个方向
  5. 了解 常见基于身份识别进行反爬
  6. 了解 常见基于爬虫行为进行反爬
  7. 了解 常见基于数据加密进行反爬

1 服务器反爬的原因

2 服务器常反什么样的爬虫

3 反爬虫领域常见的一些概念

因为反爬虫暂时是个较新的领域,因此有些定义要自己下:

这里要切记,人力成本也是资源,而且比机器更重要。因为,根据摩尔定律,机器越来越便宜。而根据IT行业的发展趋势,程序员工资越来越贵。因此,通常服务器反爬就是让爬虫工程师加班才是王道,机器成本并不是特别值钱。

4 反爬的三个方向

5 常见基于身份识别进行反爬

1 通过headers字段来反爬

headers中有很多字段,这些字段都有可能会被对方服务器拿过来进行判断是否为爬虫

1.1 通过headers中的User-Agent字段来反爬

1.2 通过referer字段或者是其他字段来反爬

1.3 通过cookie来反爬

2 通过请求参数来反爬

请求参数的获取方法有很多,向服务器发送请求,很多时候需要携带请求参数,通常服务器端可以通过检查请求参数是否正确来判断是否为爬虫

2.1 通过从html静态文件中获取请求数据(github登录数据)

2.2 通过发送请求获取请求数据

2.3 通过js生成请求参数

2.4 通过验证码来反爬

6 常见基于爬虫行为进行反爬

1 基于请求频率或总请求数量

爬虫的行为与普通用户有着明显的区别,爬虫的请求频率与请求次数要远高于普通用户

1.1 通过请求ip/账号单位时间内总请求数量进行反爬

1.2 通过同一ip/账号请求之间的间隔进行反爬

1.3 通过对请求ip/账号每天请求次数设置阈值进行反爬

2 根据爬取行为进行反爬,通常在爬取步骤上做分析

2.1 通过js实现跳转来反爬

2.2 通过蜜罐(陷阱)获取爬虫ip(或者代理ip),进行反爬

2.3 通过假数据反爬

2.4 阻塞任务队列

2.5 阻塞网络IO

2.6 运维平台综合审计

7 常见基于数据加密进行反爬

1 对响应中含有的数据进行特殊化处理

通常的特殊化处理主要指的就是css数据偏移/自定义字体/数据加密/数据图片/特殊编码格式等

1.1 通过自定义字体来反爬
下图来自猫眼电影电脑版


使用字体来反爬.png

1.2 通过css来反爬
下图来自猫眼去哪儿电脑版


通过css反爬.png

1.3 通过js动态生成数据进行反爬

1.4 通过数据图片化反爬

1.5 通过编码格式进行反爬

小结

上一篇下一篇

猜你喜欢

热点阅读