网络爬虫优化几种常见策略

时间:2022-12-06 11:58:15

什么是网络爬虫和反爬虫:

网络爬虫:使用一些技术手段,大量获取网站数据的一种方式。

反爬虫:使用一些技术手段,阻止网络爬虫获取次网站数据的一种方式。

网络爬虫优化几种常见策略

常见的反爬虫机制有哪些:

通过use-agent识别爬虫

有些爬虫的use-agent是特殊的,与正常浏览器的不一样,可通过识别特征use-agent,直接封掉爬虫请求。

设置IP访问频率,如果超过一定频率,弹出验证码

如果输入正确的验证码,则放行,如果没有输入,则拉入禁止一段时间,如果超过禁爬时间,再次出发验证码,则拉入黑名单。当然根据具体的业务,为不同场景设置不同阈值,比如登陆用户和非登陆用户,请求是否含有refer。

通过并发识别爬虫

有些爬虫的并发是很高的,统计并发最高的IP,加入黑名单。

请求的时间窗口过滤统计

爬虫爬取网页的频率都是比较固定的,不像人去访问网页,中间的间隔时间比较无规则,所以我们可以给每个IP地址建立一个时间窗口,记录IP地址最近10次访问时间,每记录一次就滑动一次窗口,比较最近访问时间和当前时间,如果间隔时间很长判断不是爬虫,清除时间窗口,如果间隔不长,就回溯计算指定时间段的访问频率,如果访问频率超过阀值,就转向验证码页面让用户填写验证码。

限制单个ip/api token的访问量

比如10分钟限制访问页面150次,对于抓取用户公开信息的爬虫要格外敏感。

破解反爬虫机制的常见方式:

1、设置下载延迟:比如数字设置为10秒,越大越安全。

2、优化cookie:cookie最好是登陆获取的,一般访客的cookie,对方限制会比较严格,可以控制一个地区新访客的访问频率。另外反爬统计的js也要分析下,是不是做了机器人判断,有没有做窗口分辨率判断

3、优化user agent:正常的HTTP请求都需要进行ua(User-Agent)优化,因为ua是浏览器标识,如果http请求没有ua,或ua太少,都会被网站运维统计异常的,ua越丰富分布就越真实。

4、使用代理IP池:网络爬虫用户需要大量的IP资源,可以自己购买付费IP业务独享IP,也可以自建IP池。

5、模拟登陆:注意很多网站,可以先用代理ip+ua(ua库随机提取)访问,之后会返回来一个cookie,那ip+ua+cookie就是一一对应的,然后用这个ip、ua和cookie去采集网站,同时能带上Referer,这样效果会比较好=

网络爬虫程序的优化策略:

1、注意很多网站,可以先用代理ip+ua(ua库随机提取)访问,之后会返回来一个cookie,那ip+ua+cookie就是一一对应的,然后用这个ip、ua和cookie去采集网站,这样效果会比较好

2、有些网站反爬取的措施应该比较强的。访问之后每次清除缓存,这样能有效规避部分网站的检测;但是有些网站更严格的判断,如果都是新链接从ip发出,也会被判定拒绝(直接403拒绝访问),因此有些爬虫客户会去分析网站的cookies缓存内容,然后进行修改。

3、浏览器的标识(User-Agent)也很重要,用户都是一种浏览器,也是容易判断作弊,要构造不同的浏览器标识,否则容易被判定爬虫。https://httpbin.org/ip,用代理访问之后,浏览器标识需要修改,建议浏览器用phantomjs框架,这个可以模拟其他浏览器的标示,可以通过API接口实现各种浏览器的采集模拟。

4、信息类网站(58、企查查、工商),这类网站主要靠信息提供商业服务,所以反爬措施很严格,非账号(匿名)采集务成正确的cookie和ua,同时限制好频率。建议通过账号登陆来进行采集,这样可以提高采集效率。

5、另外还需要模拟一些用户鼠标行为,这样才能通过这些网站的反爬措施。

7、通过流量统计和日志分析,如果发现单个IP访问、单个session访问、User-Agent信息超出设定的正常频度阈值。