常见反爬虫策略
这些策略大多采用于后端,也是目前比较常规单有效的手段
- User-Agent + Referer检测
- 账号及Cookie验证
- 验证码
- IP限制频次
前端反爬虫
FONT-FACE
例子 猫眼
猫眼电影里,对于票房数据,展示的并不是纯粹的数字。
页面使用了font-face定义了字符集,并通过unicode去映射展示。也就是说,除去图像识别,必须同时爬取字符集,才能识别出数字。
并且,每次刷新页面,字符集的url都是有变化的,无疑更大难度地增加了爬取成本。
background 拼凑
与font的策略类似,美团里用到的是background拼凑。数字其实是图片,根据不同的background偏移,显示出不同的字符。
并且不同页面,图片的字符排序也是有区别的。不过理论上只需生成0-9与小数点,为何有重复字符就不是很懂。
伪元素隐藏
例子:汽车之家
汽车之家里,把关键的厂商信息,做到了伪元素的content里。 这也是一种思路:爬取网页,必须得解析css,需要拿到伪元素的content,这就提升了爬虫的难度。
元素定位覆盖
例子去哪儿
添加干扰项、外加把数据位置调转、删减(html里明明写的3211,视觉上展示的却是1233)