System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请属于爬虫识别控制,特别涉及一种爬虫识别和防控方法、装置、计算机可读存储介质以及电子设备。
技术介绍
1、随着互联网技术的飞速发展,用户的信息系统内容被广泛发布于互联网,供公众获取。这些信息对于信息整合商和信息分析企业或个人来说,具有极高的商业价值。为了获取这些数据,他们常采用网络爬虫或网页爬虫技术,通过自动化手段大量抓取网站数据,并将其转化为商业价值。
2、网络爬虫通过高频率访问网站,会对网站造成巨大压力,导致服务器、数据库等层面承受巨大负载。这不仅影响了网站的响应速度,还可能导致服务无法响应或响应超时,严重影响正常用户的使用体验。因此,网站的技术厂商或团队不得不投入更多资源或研究技术策略来应对爬虫带来的压力。
3、目前,常规的技术方案主要是通过识别爬虫的特征来进行防控,如ip特征(包括ip地址、访问频率等),并采取禁止访问或人机交互(如登录、验证码)等措施。这些方案虽然在短期内有效,但随着时间的推移,爬虫技术团队能够迅速攻克这些策略,继续进行数据抓取。在实际应用中,这些以“堵”为主的策略,爬虫能够快速感知到请求被防范,并迅速调整策略以绕过防护措施。此外,还有一类策略是不对爬虫进行强防控,而是通过扩大服务器资源和精准缓存来提高数据获取效率,以应对大流量访问。然而,这种策略对缓存更新技术要求极高,尤其是对于需要实时更新库存信息的电商网站,需要进行深层次的系统改造,技术成本高昂,一般用户难以承担。
4、中国专利申请cn115037526b“反爬虫方法、装置、设备以及计算机存储介质”公开了一种
技术实现思路
1、为了解决上述问题,本申请提出了一种新的爬虫识别和防控方法。本申请通过建立一套识别爬虫的策略,同时通过一定量的存储资源,将爬虫的请求疏导至高效的缓存/静态文件上,通过将爬虫所需爬取的数据进行缓存或者静态化,无需保证这些数据的准确性和实时性,即可高效地输出给爬虫,利用爬虫无法识别其爬取的数据准确性的特点,缓解爬虫的影响,实现对正常用户请求输出高效响应。
2、为了实现上述目的,本申请提供了以下技术方案:
3、本申请的第一方面提供一种爬虫识别和防控方法,所述方法包括:
4、接收前端发送的查询请求,网站后端识别该请求是否为爬虫请求;
5、若该请求识别为正常用户查询请求,则通过正常用户的访问流程进行处理和查询;
6、若该请求识别为爬虫请求,则直接从缓存中查询非实时数据,并将查询到的非实时数据组装成响应结果返回网站后端;
7、网站后端将该响应结果作为查询结果返回给爬虫程序。
8、可选地,本申请方法中,所述网站后端识别该请求是否为爬虫请求,包括:
9、判断请求头是否为常规浏览器特征,若不是,则识别为爬虫请求;
10、判断请求中是否有编程语言的默认请求头,若有,则识别为爬虫请求;
11、判断请求中是否有设置的非常规请求头内容,若没有,则识别为爬虫请求;
12、判断请求中是否有调用过首页的特殊请求,若没有,则识别为爬虫请求;
13、若前述各步均未被识别为爬虫请求,则识别为正常请求。
14、可选地,本申请方法中还包括:
15、建立一个请求头识别库,用于请求头的识别;所述请求头识别库中包括:常规浏览器的请求头特征和用于编写爬虫程序的编程语言或脚本语言的请求头特征。
16、可选地,本申请方法中还包括:在进行网页程序编写时,写入一个非常规请求头,之后在每次调用请求的请求头中,都带入该非常规请求头。
17、可选地,本申请方法中还包括:在首页或者初始化界面中设置一个页面特殊请求,在首页或者初始化界面打开时调用;后台调用所述页面特殊请求后,立即在缓存中存储一个认证值,并将该认证值写入浏览器cookie;下次调用其他请求时,如果从cookie中未查询到该认证值,或者在缓存中没有查到相关内容,则证明该请求并非来自页面的正常请求,由于其跳过了页面操作的步骤,因此识别为爬虫请求。
18、可选地,本申请方法中,所述正常用户的访问流程,包括:
19、用户打开网站首页或者初始化界面,调用网站后端;
20、网站后端存储缓存,写入cookie;
21、在页面上查询数据,页面中自动带入非常规请求头;
22、网站后端识别非常规请求头,进行数据查询,将查询结果写入缓存,并设置缓存有效期。
23、可选地,本申请方法中还包括:通过编程设置以下可配置项,通过动态调整和实时扩展可配置项实现对爬虫的识别和防控:
24、请求头特征项:包括常规浏览器的请求头特征和用于编写爬虫程序的编程语言或脚本语言的请求头特征;
25、非常规请求头项:包括请求头名和对应的值,每次调用请求的请求头中,都带入非常规请求头;
26、页面特殊请求项:在首页或者初始化界面中设置页面特殊请求,在首页或者初始化界面打开时调用;
27、缓存时间项:调整缓存的时间长短。
28、本申请的第二方面提供一种爬虫识别和防控装置,所述装置包括:
29、爬虫识别模块:用于接收前端发送的查询请求,识别该请求是否为爬虫请求;
30、正常请求处理模块:用于当请求识别为正常用户查询请求时,通过正常用户的访问流程进行处理和查询;
31、爬虫请求处理模块:用于当请求识别为爬虫请求时,直接从缓存中查询非实时数据,并将查询到的非实时数据组装成响应结果返回网站后端;
32、结果处理模块:用于将响应结果作为查询结果返回给爬虫程序。
33、所述装置在运行时实现前述的爬虫识别和防控方法的步骤。
34、本申请的第三方面提供一种电子设备,包括:存储器和处理器;
35、存储器:用于存储计算机程序;
36、处理器:用于执行所述计算机程序,以实现前述的爬虫识别和防控方法的步骤。
37、本申请的第四方面提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现前述的爬虫识别和防控方法的步骤。
38、综上,本申请提出了一种新的爬虫识别和防控方法,本方法具有以下优点:
39、1.解决了常见的以堵为主的策略越堵量越大的问题,以及防范手段不如爬虫手段提升迅速的问题。本方法以疏导的方式,造成了满足爬虫需求的假象,减缓了爬虫学习和变异的速度,大部分爬虫没有感知,会继续使用自认为有效的爬虫策略来爬取。
40、2.使得爬虫难以琢磨防控手段。因为爬虫仍能获取到数据,对于哪些数本文档来自技高网...
【技术保护点】
1.一种爬虫识别和防控方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述网站后端识别该请求是否为爬虫请求,包括:
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:在进行网页程序编写时,写入一个非常规请求头,之后在每次调用请求的请求头中,都带入该非常规请求头。
5.根据权利要求2所述的方法,其特征在于,所述方法还包括:在首页或者初始化界面中设置一个页面特殊请求,在首页或者初始化界面打开时调用;后台调用所述页面特殊请求后,立即在缓存中存储一个认证值,并将该认证值写入浏览器cookie;下次调用其他请求时,如果从cookie中未查询到该认证值,或者在缓存中没有查到相关内容,则证明该请求并非来自页面的正常请求,由于其跳过了页面操作的步骤,因此识别为爬虫请求。
6.根据权利要求1所述的方法,其特征在于,所述正常用户的访问流程,包括:
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:通过编程设置以下可配置项,通过
8.一种爬虫识别和防控装置,其特征在于,所述装置包括:
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1-7中任一项所述的爬虫识别和防控方法的步骤。
10.一种电子设备,其特征在于,包括:存储器和处理器;
...【技术特征摘要】
1.一种爬虫识别和防控方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述网站后端识别该请求是否为爬虫请求,包括:
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:在进行网页程序编写时,写入一个非常规请求头,之后在每次调用请求的请求头中,都带入该非常规请求头。
5.根据权利要求2所述的方法,其特征在于,所述方法还包括:在首页或者初始化界面中设置一个页面特殊请求,在首页或者初始化界面打开时调用;后台调用所述页面特殊请求后,立即在缓存中存储一个认证值,并将该认证值写入浏览器cookie;下次调用其他请求时,如果从cookie中...
【专利技术属性】
技术研发人员:臧凌,杨佳杰,贾宇清,李雄清,马欣,钟文超,黄斯诺,
申请(专利权)人:中国民航信息网络股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。