一种用于反爬虫的无头浏览器检测识别方法及装置制造方法及图纸

技术编号:38143060 阅读:20 留言:0更新日期:2023-07-08 09:58
本发明专利技术公开了一种用于反爬虫的无头浏览器检测识别方法。步骤S1:在网页中加入一段经过混淆的、用于获取浏览器特征信息的第一代码,还在网页中加入一段用于将http请求绑定浏览器特征信息的第二代码。步骤S2:当有浏览器向该网页发出http请求时,第一代码搜集该浏览器的特征信息,第二代码将该http请求绑定搜集到的浏览器特征信息,采用加密算法将绑定内容加密后上传给服务器。步骤S3:服务器接收加密后的绑定内容并进行解密,根据多项判断依据判断当前浏览器的http请求是否为网络爬虫行为;如果是,则对当前http请求进行拦截;否则对当前http请求予以响应。本发明专利技术能识别出包含puppeteer在内的多种无头浏览器,提升了识别网络爬虫的准确性。网络爬虫的准确性。网络爬虫的准确性。

【技术实现步骤摘要】
一种用于反爬虫的无头浏览器检测识别方法及装置


[0001]本专利技术涉及一种无头浏览器的检测识别方法。

技术介绍

[0002]网络爬虫(web crawler)是一种有秩序地抓取互联网信息的自动化脚本或程序,例如搜索引擎为了索引网站而采用。考虑到性能、安全等因素,有些网站采用反爬虫(anti

crawler)技术手段阻止网络爬虫批量获取自己网站信息。
[0003]无头浏览器(headless browser)是指没有图形用户界面的网页浏览器。无头浏览器通过命令行界面或网络通信执行对网页的自动控制,与常规网页浏览器对网页的控制相似。无头浏览器可用于做网络爬虫。
[0004]puppeteer是一种基于Chrome或Chromium网页浏览器开发的Node.js库,默认以无头浏览器的方式运行。puppeteer无头浏览器可以最大程度模拟正常用户的访问行为,传统的反爬虫技术手段能够识别PhantomJS、Selenium等无头浏览器,但对puppeteer无头浏览器这种仿真度极高的爬虫行为难以检测识别,还容易误杀真实用户。

技术实现思路

[0005]本专利技术所要解决的技术问题是提出一种无头浏览器的检测识别方法,能够识别例如puppeteer无头浏览器。
[0006]为解决上述技术问题,本专利技术提出了一种用于反爬虫的无头浏览器检测识别方法,包括如下步骤。步骤S1:在网页中加入一段经过混淆的、用于获取浏览器特征信息的第一代码,还在网页中加入一段用于将http请求绑定浏览器特征信息的第二代码。步骤S2:当有浏览器向该网页发出http请求时,所述第一代码搜集该浏览器的特征信息,所述第二代码将该http请求绑定搜集到的浏览器特征信息,绑定内容中包含了当前浏览器访问该网页的http请求头;随后采用加密算法将绑定内容加密后上传给服务器。步骤S3:服务器接收加密后的绑定内容并进行解密,再根据多项判断依据判断当前浏览器的http请求是否为网络爬虫行为;如果是,则对当前浏览器的http请求进行拦截;如果否,则对当前浏览器的http请求予以响应。
[0007]优选地,所述步骤S1中,采用ob混淆技术对第一代码进行混淆,混淆后的第一代码不可读且无法调试。
[0008]进一步地,所述步骤S1中,所述第一代码至少用于获取浏览器的Navigator.webdriver属性的值、Navigator.userAgent属性的值、Navigator.platform属性的值、Navigator.mimeTypes属性的值、Navigator.plugins属性的值、Plugin接口的值。
[0009]进一步地,所述步骤S1中,所述第二代码采用ajax

hook技术,使任意浏览器向该网页发出的所有http请求都自动绑定第一代码所搜集的该浏览器的特征信息;所述ajax

hook技术能够拦截ajax请求和响应,在ajax请求和响应被发送到服务器或浏览器之前对它们进行修改和处理。
[0010]优选地,所述步骤S2中,采用AES算法加密;所述步骤S3中,采用AES算法解密。
[0011]进一步地,所述步骤S3中,所述多项判断依据至少包括如下七项。判断依据一:如果浏览器的Navigator.webdriver属性的值为true,则判定该浏览器的http请求为网络爬虫行为。判断依据二:如果浏览器的Navigator.userAgent属性中包含“headless”字样,则判定该浏览器的http请求为网络爬虫行为。判断依据三:如果浏览器的Navigator.userAgent属性和http请求头中的useragent的值不一致,则判定该浏览器的http请求为网络爬虫行为。判断依据四:如果浏览器的Navigator.userAgent属性中的平台信息和浏览器的Navigator.platform属性的值不一致,则判定该浏览器的http请求为网络爬虫行为。判断依据五:如果浏览器的Navigator.plugins属性中的插件数组的长度为0,则判定该浏览器的http请求为网络爬虫行为。判断依据六:如果浏览器的Navigator.plugins属性中的插件数组的长度不为0,但浏览器的Plugin接口里的name属性、description属性、filename属性和version属性的值超出了预设的正常值的范围,则判定该浏览器的http请求为网络爬虫行为。判断依据七:如果浏览器的Navigator.mimeTypes属性的值是"application/pdf,pdf,","application/x

google

chrome

pdf,pdf,Portable Document Format","application/x

nacl,,Native Client Executable","application/x

pnacl,,Portable Native Client Executable",则判定该浏览器的http请求为网络爬虫行为。上述七项判断依据之间或者任意一项或多项在前,或任意一项或多项同时进行;只要有任何一项判断依据判定当前浏览器的http请求是网络爬虫行为,则不再考虑其他判断依据的判定结果,并停止正在进行的其余判断依据的判断过程。
[0012]进一步地,在所述步骤S3之后还包括步骤S4、步骤S5。
[0013]步骤S4:服务器根据当前浏览器的http请求的判定结果是网络爬虫行为、不是网络爬虫行为,记录与该http请求绑定的当前浏览器的特征信息并将其相应地分为两类——拦截类型、放行类型。步骤S5:服务器收到后续浏览器的http请求时,将后续浏览器的http请求绑定的浏览器特征信息与已记录的浏览器特征信息进行比对;如比对成功则根据已记录的浏览器特征信息的类型直接进行相应操作,不再进行步骤S3中的多项判断依据的判断。
[0014]本专利技术还提出了一种用于反爬虫的无头浏览器检测识别装置,包括网页设计单元、信息搜集单元、爬虫识别单元。所述网页设计单元用于在网页中加入一段经过混淆的、用于获取浏览器特征信息的第一代码,还在网页中加入一段用于将http请求绑定浏览器特征信息的第二代码。所述信息搜集单元用于有浏览器向该网页发出http请求时,由第一代码搜集该浏览器的特征信息,由第二代码将该http请求绑定搜集到的浏览器特征信息,绑定内容中包含了当前浏览器访问该网页的http请求头;随后采用加密算法将绑定内容加密后上传给服务器。所述爬虫识别单元用于令服务器接收加密后的绑定内容并进行解密,再根据多项判断依据判断当前浏览器的http请求是否为网络爬虫行为;如果是,则对当前浏览器的http请求进行拦截;如果否,则对当前浏览器的http请求予以响应。
[0015]进一步地,所述用于反爬虫的无头浏览器检测识别装置还包括特征记录单元、预判处理单元。所述特征记录单元用于令本文档来自技高网
...

【技术保护点】

【技术特征摘要】
Native Client Executable",则判定该浏览器的http请求为网络爬虫行为;上述七项判断依据之间或者任意一项或多项在前,或任意一项或多项同时进行;只要有任何一项判断依据判定当前浏览器的http请求是网络爬虫行为,则不再考虑其他判断依据的判定结果,并停止正在进行的其余判断依据的判断过程。7.根据权利要求1所述的用于反爬虫的无头浏览器检测识别方法,其特征是,在所述步骤S3之后还包括步骤S4、步骤S5。步骤S4:服务器根据当前浏览器的http请求的判定结果是网络爬虫行为、不是网络爬虫行为,记录与该http请求绑定的当前浏览器的特征信息并将其相应地分为两类——拦截类型、放行类型;步骤S5:服务器收到后续浏览器的http请求时,将后续浏览器的http请求绑定的浏览器特征信息与已记录的浏览器特征信息进行比对;如比对成功则根据已记录的浏览器特征信息的类型直接进行相应操作,不再进行步骤S3中的多项判断依据的判断。8.一种用于反爬虫的无头浏览器检测识别装置,其特征是,包括网页设计单元、信息搜集单元、爬虫识别单元;所述网页设计单元用于在网页中加入一段经过混淆的、用于获取浏览器特征信息的第一代码,还在网页中加入一段用于将http请求...

【专利技术属性】
技术研发人员:于浩佳刘岗丁凯郭丰俊龙腾陈青山
申请(专利权)人:上海合合信息科技股份有限公司上海临冠数据科技有限公司上海盈五蓄数据科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1