自动识别采集内容( 中国现已网民4.85亿自动爬取网站爆炸原因分析(组图))
优采云 发布时间: 2021-12-01 18:20自动识别采集内容(
中国现已网民4.85亿自动爬取网站爆炸原因分析(组图))
一个可以自动识别网页信息的系统采集
技术领域
[0001] 本发明涉及网页动态分析技术领域,具体属于一种能够自动识别网页信息的系统。
背景技术
[0002] 随着互联网的发展,越来越多的互联网网站出现,形式层出不穷,包括新闻、博客、论坛、SNS、微博等。据CNNIC今年最新统计,现在中国有85亿网民,各种网站的域名超过130万个。在互联网信息爆炸式增长的今天,搜索引擎已经成为人们寻找互联网信息的最重要工具。
[0003] 搜索引擎主要是自动抓取网站信息,对其进行预处理,分词后建立索引。输入搜索词后,搜索引擎可以自动为用户找到最相关的结果。经过十多年的发展,搜索引擎技术已经比较成熟,并且因为可以采用成功的商业模式,吸引了众多互联网厂商的进入。比较有名的有百度、谷歌、搜搜、搜狗、有道、奇虎360等。此外,在一些垂直领域(如旅游、机票、比价等)也有搜索引擎,入驻企业上千家。
[0004] 搜索引擎的第一步也是最重要的一步是信息捕获,这是搜索引擎的数据准备过程。具体流程如图1所示,URLDB存储了所有要爬取的URL。URL调度模块从URLDB中选取最重要的URL放入URL下载队列。页面下载模块下载队列中的 URL。下载完成后,提取模块下载页面的代码,从文本和URL中提取出页面的代码,将提取出的文本发送到索引模块进行分词索引,并将URL放入URLDB中。
[0005] 信息采集过程是将别人的网站信息放入自己的信息库的过程,会遇到一些问题。
[0006]1、互联网信息每时每刻都在不断增加,因此信息获取是一个7*24小时不间断的过程。频繁的爬取会给目标网站带来巨大的访问压力,形成DD0S拒绝服务攻击,导致无法为普通用户提供访问。这在中小型网站中尤为明显。这些网站@网站的硬件资源比较差,技术力量也不强,网上90%以上都是这种网站。例如:某知名搜索引擎因频繁爬取某个网站而打电话给用户投诉。
[0007] 2、部分网站信息具有隐私或版权,许多网页中收录后台数据库、用户隐私、密码等信息。网站 主办方不希望将这些信息公开或免费使用。大众点评曾对爱帮网提起诉讼,要求其在网站上抓取其评论,然后将其发布在自己的网站上。
[0008] 目前采集针对搜索引擎网页采用的主流方法是robots协议。网站 通过robots.txt协议控制内容是否愿意被搜索引擎搜索。收录 ,以及允许哪些搜索引擎收录,并指定收录可用和禁止收录的内容。同时,搜索引擎会根据每个网站机器人协议授予的权限,有意识地进行抓取。该方法假设的搜索引擎抓取过程如下:
[0009] 下载网站robots文件-根据robots协议解析文件-获取要下载的URL-确定该URL的访问权限-根据判断结果确定是否进行爬取。
[0010] Robots协议是君子协议,没有限制。爬取主动权还是完全由搜索引擎控制,完全可以不按照协议进行爬取。例如,2012年8月,国内某知名搜索引擎因未按照协议抓取百度网站的内容而被百度指控。
[0011] 另一种反采集方法主要是利用动态技术构造禁止爬取的网页。这种方法使用客户端脚本语言(如JS、VBScript、AJAX)动态生成网页显示信息来实现信息隐藏,使得常规搜索引擎难以获取URL和正文内容。动态网页构建技术只是增加了网页解析提取的难度,并不能从根本上禁止采集和网页信息的解析。目前,一些高级搜索引擎已经可以模拟浏览器来实现所有的脚本代码。分析获取所有信息的网络URL,从而获取存储在服务器中的动态信息。
[0012] 目前已有成熟的网页动态分析技术,主要是解析网页中的所有脚本代码段,然后获取网页的所有动态信息(包括有用信息和垃圾信息)。实际实现过程是基于一个开源的脚本代码分析引擎(如Rhino、V8等)为核心搭建网页脚本分析环境,然后从网页中提取脚本代码段,并把提取的代码段放入网页脚本分析环境中执行分析返回动态信息。解析过程如图2所示。 因此,采用动态技术构建动态网页的方法,只会增加网页采集的解析难度,
发明内容
[0013] 本发明的目的在于提供一种能够自动识别网页信息采集的系统,克服现有技术的不足。系统建立自动采集分类器识别机器人的自动采集,通过机器人采集的自动识别实现网页的反爬虫。
[0014] 本发明采用的技术方案如下:
[0015]-一种能够自动识别网页信息的系统,包括反分类构建模块、自动识别模块和反上网处理模块。采集分类器构建模块,该模块主要用于利用计算机程序自动学习和区分历史网页信息采集和正常的网页访问行为。本模块为自动采集识别提供训练模型,所述自动采集识别模块,本模块主要通过加载自动分类器,自动识别搜索引擎程序的自动采集行为,并将采集程序所在的IP段加入黑名单,用于后续自动采集的在线拦截 行为,以及反采集在线处理模块,主要用于对访问用户进行自动在线判断和处理。如果访问者的IP已经在IP段黑名单中,则拒绝访问该IP;否则,将访问请求转发给Web服务器进行进一步处理。
[0016] 反分类器构建模块的实现方法具体包括以下步骤:
[0017](5)日志解析子模块通过对站点访问日志的自动分析,获取用户访问行为信息,包括用户访问网站所使用的IP,访问发生的时间,访问的URL和源URL; 样本选择子模块根据连续时间段内同一IP段中访问频率最高的数据记录,选择步骤1中解析的数据记录作为候选数据添加到样本集中;访问统计子模块选择选中的数据记录样本数据进行统计,同一IP段的平均页面停留时间,站点访问的页面总数,是否采集@ > 网页附件信息,网页采集频率;
[0018](6)以IP段为主要关键字,将上述信息保存在样本库中,标记为未标记;
[0019](7)标记步骤中未标记的样本(1),如果确定样本是机器自动采集,则标记为1;如果是正常访问的用户浏览器,然后将其标记为0,所有标记的样本都更新到数据库中;
[0020] (8)计算机程序自动学习样本库,生成分类模型,用于后续自动采集识别。
[0021] 自动识别模块的实现方法包括以下步骤:
[0022](5)识别程序的初始化阶段完成分类器模型的加载,可以判断自动采集行为;
[0023](6)日志分析程序解析最新的网站访问日志,并将解析后的数据发送给访问统计模块;
[0024](7)访问统计模块计算同一IP段的平均页面停留时间,是否为采集网页附件信息,以及采集网页的频率;
[0025](8)分类器根据分类模型确定IP段的访问行为,并将确定为程序自动采集行为的IP段加入黑名单;
[0026] 反采集在线处理模块的实现方法包括以下步骤:
[0027] (1)对于web服务器转发的访问请求,提取访问者的IP信息;
[0028] (2)比较黑名单库中的IP信息,如果IP已经在黑名单中,则通知Web服务器拒绝访问该IP;否则通知Web服务器正常处理访问请求.
[0029] 与现有技术相比,本发明的有益效果如下:
[0030] 本发明的系统通过分析网站的历史网页访问行为,建立自动采集分类器,识别机器人的自动采集,并通过自动机器人采集,实现网页反爬,自动发现搜索引擎的网页采集行为,并拦截其采集行为,从根本上杜绝搜索引擎的采集行为。
图纸说明
[0031] 图 附图说明图1是现有技术搜索引擎的信息抓取过程的简化图;
[0032] 图 图2是现有技术的第二分析过程的简化图;
[0033] 图 图3是本发明的反采集分类器的框图;
[0034] 图 图4是本发明的自动识别模块的*敏*感*词*;
[0035] 图5为本发明的反采集在线处理模块。
详细方法
[0036] 参考附图,一种能够自动识别网页信息的系统包括反采集分类器构建模块、自动采集识别模块和反采集在线处理模块,反采集分类器构建模块,该模块主要用于利用计算机程序自动学习和区分历史网页信息采集和正常的网页访问行为。这个模块为自动采集识别提供了一个训练模型。所述的自动采集识别模块,主要是通过加载一个自动分类器,自动识别搜索引擎程序的自动采集行为,并识别采集@采集 将程序所在的IP段加入黑名单。黑名单用于后续在线拦截自动采集行为。反采集在线处理模块主要用于对来访用户进行自动在线判断和处理。如果访问者的IP已经在IP段黑名单中,则拒绝访问该IP;否则,将访问请求转发给Web服务器进行进一步处理。
[0037] 反分类器构建模块的实现方法具体包括以下步骤:
[0038](9)日志分析子模块通过对站点访问日志的自动分析,获取用户访问行为信息,包括用户访问网站所使用的IP、访问发生的时间、访问的URL和源URL; 样本选择子模块根据连续时间段内同一IP段中访问频率最高的数据记录,选择步骤1中解析的数据记录作为候选数据添加到样本集中;访问统计子模块选择选中的数据记录样本数据进行统计,同一IP段的平均页面停留时间,站点访问的页面总数,是否采集@ > 网页附件信息,网页采集频率;
[0039] (10)以IP段为主要关键字,将上述信息保存在样本库中,标记为未标记;
[0040] (11)标记步骤中未标记的样本(1),如果确定样本是机器自动采集,则标记为1;如果是正常访问被用户浏览器标记为0,所有标记的样本都更新到数据库中;
[0041] (12)计算机程序自动学习样本库并生成分类模型用于后续的自动采集识别。
[0042] 自动识别模块的实现方法包括以下步骤:
[0043] (9)识别程序的初始化阶段完成了分类器模型的加载,可以判断自动的采集行为;
[0044] (10)日志分析程序解析最新的网站访问日志,并将解析后的数据发送给访问统计模块;
[0045] (11)访问统计模块计算同一IP段的平均页面停留时间,是否为采集网页附件信息,以及采集网页出现的频率;
[0046] (12)分类器根据分类模型确定IP段的访问行为,将确定为自动节目采集行为的IP段加入黑名单;
[0047] 反采集在线处理模块的实现方法包括以下步骤:
[0048] (1)对于web服务器转发的访问请求,提取访问者的IP信息;
[0049] (2)比较黑名单库中的IP信息,如果IP已经在黑名单中,则通知Web服务器拒绝访问该IP;否则通知Web服务器正常处理访问请求.
[0050] 抗误集分类器的构建
[0051] 该模块主要用于训练计算机程序,使其能够自动学习和区分历史网页信息采集和正常的网页访问行为。该模块可以为后续的自动采集识别提供训练模型。具体包括以下几个步骤。
[0052] 2. 2. 1.1 日志分析
[0053] 本模块需要解析服务器的历史访问日志(可以选择某天的日志),提取用户的访问行为信息,包括用户访问网站所使用的IP,访问发生的时间,以及访问的 URL。, 来源网址。具体包括以下两个步骤:
[0054] (1) 为每个要提取的用户访问信息项编写正则表达式。
[0055] IP表达式提取正则表达式定义为:
[0056] [d]{1,3}。[d] {1,3}。[d] {1,3}。[d] {1,3}
[0057] URL提取正则表达式定义为:
[0058] (http[s] {0,1} | ftp): //[a-zA-Z0-9. _]+. ([a-zA~Z] {2,4}) (:D+)?(/ [a-zA-Z0-9.-~!_$% ~&*+?:_/ =〈>]*)?
[0059] 时间提取表达式定义为:
[0060][d]{4}-[d]{2}-[d]{2}[d]{2}:[d]{2}:[d]{2}
[0061] (2)逐行读取完整的访问日志记录,使用步骤1中的正则表达式匹配提取用户行为信息,发送至流量统计模块。
[0062] 2.2 样品选择
[0063] 样本选择子模块根据连续时间段内同一IP段中访问频率最高的数据记录,选择步骤1中的分析数据记录,作为候选数据加入样本集中。具体实现方法如下:
[0064] (1)首先以用户的IP段为单位,选择10分钟为时间窗口,进行顺序滑动,统计滑动前10分钟间隔内的访问次数,并存储在一个数组中。
[0065] (2)将数组(1)从大到小排序,得到访问频率最高的时间间隔。将数据段记录加入到样本集中。
[0066] 以下为同一IP段的判断算法:
[0067] 1. 将第一个访问者的IP地址分成4段,用符号.分隔,保存到数组1中,第二个访问者的IP同样分成4段保存在数组 2 中。
[0068] 2.如果数组1和数组2的前N/8个元素相同,则认为第一访问者和第二访问者是同一个网段IP;否则就是不同的网段IP。N 是掩码长度。在实际操作中,掩码长度选择为24位。例如60. 131. 22. 35 和60. 131. 22. 37 可以认为是同一个IP段.
【0069】2. 2. 1.3次访问统计
[0070] 访问统计子模块对选取的样本数据进行统计,计算同一IP段的平均页面停留时间、网页采集频率(每分钟采集页的平均数) ,以及是否@采集网页附件信息。具体计算公式定义如下:
[0071] 1.定义对网站的总访问次数为N,则网页采集频率_
, 其中 T 为采样时间段,即 10 分钟。
[0072] 2. 定义Tk为在第k个网页的停留时间,Tk=Vk-Vkl,其中Vk定义为访问第k个网页时的系统时间,平均网页停留时间为
,是采集的页数。
<p>[0073] 3.定义Np个页面中收录的附件(包括图片、脚本、样式)总数为Na,采集的实际页面附件数为N-Np,则