网页采集器的自动识别算法( 网站对网络爬虫识别的技术实现要素-本发明所要web爬虫)
优采云 发布时间: 2021-09-05 19:10网页采集器的自动识别算法(
网站对网络爬虫识别的技术实现要素-本发明所要web爬虫)
本发明涉及网络爬虫领域,尤其涉及一种自动识别网络爬虫的方法。
背景技术:
目前网站有多种方法来识别网络爬虫。最有效和广泛使用的方法是提供交互组件来识别客户端是真实用户还是网络爬虫,例如验证码。但是这种方式会在一定程度上影响用户的上网体验。
在爬取网站页面的过程中,爬虫会爬取首页。同时,由于爬虫通常不会重复爬取相同网址的页面,因此可用于识别请求是否来自爬虫。现有技术中,通过在页面中放置暗链接作为蜜罐来识别爬虫,或者以爬虫的特征信息(HTTP头等)作为识别依据。但是暗链接是可识别的,计算头部信息需要额外的资源消耗。
相关术语:
onload:页面加载完成后,浏览器会执行onload中的函数;爬虫:用于抓取网页信息的应用程序;重定向:通过各种方式将网络请求重新定位到其他位置,(如:网页重定向、域名重定向等);网页去重:抓取网页信息时,爬虫计算两个页面的相似度,判断两个页面是否相似,避免重复抓取; URL:统一资源定位器,俗称URL; Cookie:网站存储在用户所在位置的数据,用于识别用户身份。
技术实现要素:
本发明要解决的技术问题是提供一种在不影响用户上网体验的情况下,自动识别网络爬虫,通过多次重定向拦截网络爬虫请求并设置cookies的方法。
为解决上述技术问题,本发明采用的技术方案是:
一种自动识别网络爬虫的方法,包括以下步骤:
第一步:服务器首页返回一个只收录JS代码的页面。这段代码位于onload函数中,页面完全加载后执行;
第2步:第1步描述的JS代码使用第一种对称加密算法通过Set-Cookie头设置一个cookie字段,然后使用window.location跳转到首页;服务端检测到cookie合法,返回另一段JS代码,另一段JS代码使用第二种对称加密算法设置cookie字段;
第三步:当所有cookie字段都合法时,返回正常的首页网址;
第四步:如果客户端没有进行重定向操作,或者cookie值不正确,设置badcookie并标记为爬虫。
根据上述方案,1、2、3步骤重复多次,但不要超过浏览器设置的重定向限制。
根据上述方案,第一种对称加密算法是DES、TripleDES、RC2、RC4、RC5和Blowfish,第二种对称加密算法是DES、TripleDES、RC2、RC4、RC5 和 Blowfish,与第一种对称加密算法不同。
与现有技术相比,本发明的有益效果是:1)可以屏蔽大部分静态爬虫的访问。如果爬虫无法执行首页的JS代码,只能爬到只返回JS代码的服务器。主页,无法获取真正的主页。 2)只要爬虫有去重功能,就不会因为跳转到同一个页面而继续爬行。 3)该方法适用的页面包括但不限于首页,可以在网站的任何页面使用,有效防止爬取采集信息。
图纸说明
图。附图说明图1为本发明自动识别网络爬虫的方法流程*敏*感*词*。
具体实现方法
下面结合附图和具体实施例对本发明作进一步详细说明。通过在网页中嵌入javascript,一次或多次重定向到同一页面并同时返回状态码,导致爬虫无法正常爬取页面。在onload中执行javascript代码指定的cookie或badcookie,判断请求是否来自爬虫。
服务器首页返回一个只收录JS代码的页面(用JavaScript编写的脚本扩展代码)。此代码位于 onload 函数中,在页面完全加载后执行。这段JS代码会使用一定的算法(IP、header等信息作为算法参数)设置一个cookie字段,然后使用window.location跳转到首页(本页)。服务端检测到cookie有效,返回另一段JS,使用另一种算法设置cookie字段。根据网站的需要,上述步骤可以重复多次,但不能超过浏览器设置的重定向限制。仅当所有 cookie 字段都有效时,才会返回正常的主页 URL。如果客户端没有进行重定向操作,或者cookie值不正确,可以设置badcookie并标记为爬虫。同时可以根据服务器请求记录中的请求数判断为爬虫。例如,第一个收录所有正确 cookie 的 get 请求必须是一个爬虫。
本发明涉及的算法为对称加密算法,主要有DES、TripleDES、RC2、RC4、RC5和Blowfish。为防止用户提前访问浏览器中的页面获取正确的cookie,可以在网站的页面目录的每一层增加一个功能相同的页面,以增强反爬虫的效果。