什么是网络爬虫和反爬虫:
• 网络爬虫:使用一些技术手段,大量获取网站数据的一种方式。
• 反爬虫:使用一些技术手段,阻止网络爬虫获取次网站数据的一种方式。
常见的反爬虫机制有哪些:
• 通过use-agent识别爬虫
有些爬虫的use-agent是特殊的,与正常浏览器的不一样,可通过识别特征use-agent,直接封掉爬虫请求。
• 设置IP访问频率,如果超过一定频率,弹出验证码
如果输入正确的验证码,则放行,如果没有输入,则拉入禁止一段时间,如果超过禁爬时间,再次出发验证码,则拉入黑名单。当然根据具体的业务,为不同场景设置不同阈值,比如登陆用户和非登陆用户,请求是否含有refer。
• 通过并发识别爬虫
有些爬虫的并发是很高的,统计并发最高的IP,加入黑名单。
• 请求的时间窗口过滤统计
爬虫爬取网页的频率都是比较固定的,不像人去访问网页,中间的间隔时间比较无规则,所以我们可以给每个IP地址建立一个时间窗口,记录IP地址最近10次访问时间,每记录一次就滑动一次窗口,比较最近访问时间和当前时间,如果间隔时间很长判断不是爬虫,清除时间窗口,如果间隔不长,就回溯计算指定时间段的访问频率,如果访问频率超过阀值,就转向验证码页面让用户填写验证码。
• 限制单个ip/api token的访问量
比如10分钟限制访问页面150次,对于抓取用户公开信息的爬虫要格外敏感。
破解反爬虫机制的常见方式:
1 设置下载延迟:比如数字设置为10秒,越大越