Web数据挖掘智能动态爬虫的设计与应用外文翻译资料

 2022-08-07 11:32:26

英语原文共 8 页,剩余内容已隐藏,支付完成后下载完整资料


Web数据挖掘智能动态爬虫的设计与应用

ZHENG Guojun2 , JIA Wenchao1 , SHI Jihui2 , SHI Fan1 , ZHU Hao2 , LIU Jiang3

1.Electronic Engineering Institute, Hefei 230037

2.Jiangsu WISCOM Technology Co. Ltd, Nanjing 210021

3.Fenghua sub-bureau of Ningbo Public Security Bureau, Ningbo 315500

摘要:Web数据采集是Web数据挖掘的基础。Web爬虫是Web数据采集的一项重要工具,但是频繁更新的Web数据结构,数据源和分发通道,导致爬虫程序开发和维护的高成本。为了解决这一问题,本文设计并实现了一种智能动态爬虫,它将XPath的数据提取规则存储在数据库中,根据目标动态加载规则,并且使用TF-IDF方法计算相关性。Web爬取规则可被自动获取,这使得爬虫具有智能性和动态性,提高了爬虫对复杂网络环境的适应性,降低了维护和更新的成本。最后,本文通过漏洞社区和网络节点搜索引擎的数据收集和数据分析的方法,将智能动态爬虫应用于感知公共漏洞的威胁。实验利用三个漏洞社区的原型系统对数据进行收集和分析。结果表明,智能动态爬虫能够实现高效灵活的数据采集功能,并且为Web数据挖掘奠定了基础。

关键词:Web数据采集;数据提取规则;XPath;TF-ID;威胁感知

Web应用作为当前网络使用最广泛的信息传播,交互和通信控制平台,成为网络数据最重要的来源。为了发现Web数据中的公共信息和隐藏信息,网络数据挖掘涉及文本分析,着重研究控制舆论、推荐系统、网络安全和其他方向。

本文分析了传统网络爬虫在当前Web应用发展趋势中面临的挑战,为网络爬虫数据提取规则、网络威胁感知和应用领域提出了一种动态智能的解决方案,提高了爬虫的开发和维护效率。

在以往的许多研究中,爬虫主要用于搜索引擎,舆情监测提供数据和提供URL进行Web安全测试等。爬虫可以分为两类:一是针对各种业务网站的特定渠道编写的网络爬虫;二是爬虫的普遍类,主要功能是收集广泛的数据或URL。在这两种爬虫的设计和实现中,通常对目标进行充分的分析,以代码的形式编写抓取规则。爬虫的传统通用架构如图1所示。

图1.传统爬虫工作流程图

1.研究现状

近年来,随着Web数据规模和新技术的出现,爬虫研究主要围绕以下方向: 1. 聚焦爬虫或主题爬虫。通过网页分析,这种爬虫是通过用户定义的主题页进行选择性提取的。研究的重点是网页与主题的相关性判断,网页分析算法和访问URL的排序算法等。为了适应复杂的Web环境,爬虫框架采用本体和语义匹配算法,比如提高爬虫的自聚焦能力。

2. 深度Web爬虫。很多有价值的信息被“隐藏”在数据库查询或Java脚本中,以动态生成网页,这类页面通常被称为深度Web。深度Web爬虫的主要问题是分析表单和自动填写表单,发现隐藏页面和大量的深度Web数据采集等。

3. 分布式爬虫。分布式爬虫的主要研究内容是调度策略,负载均衡和错误矫正机制。通过实现爬虫的聚类操作来提高爬虫节点的可扩展性和容错性。

4. 事件驱动爬虫。Ajax技术的广泛使用使得爬虫很难获得异步加载的Web数据。事件驱动爬虫通过将爬虫代码嵌入浏览器,触发事件并且监控页面的变化,获取异步传输的数据内容。

交互式Web应用的数据资源越来越丰富。新的网页开发工具,框架和标准涌现,信息发布渠道的多样性使得传统爬虫面临巨大的挑战。

本文设计并实现了一种智能动态爬虫,改善了传统爬虫固定在数据源提取规则中的缺点,根据目标站点,通过数据库加载数据提取规则,动态提取数据规则;同时采用TF-IDF模型计算相关性,对相关性程度高的Web数据,通过数据提取规则自动获取智能爬虫,提高了爬虫对变化的Web数据的适应能力,降低了维护成本和更新频率。

2.基于XPath的数据提取动态加载规则

根据对传统爬虫通用架构的分析,爬虫通常需要通过用户界面或配置文件说明起始URL,域名,爬取深度,爬取方式,采集文件类型和数据匹配规则。但是,大多数爬虫将数据提取规则写入程序,导致在站点结构改变或数据源更改时需要修改代码。为了避免同样的情况就能达到开发人员和用户不需要修改程序的目的。被称为爬虫框架的数据提取规则动态加载正则表达式需要变为独立于程序的正则表达式。与复杂正则表达式相比,本文选择XPath作为一种易于使用和学习的描述语言实现爬虫的动态提取规则。

在XPath的XML文档中选择节点或节点集的路径表达式比正则表达式更易读,从而更容易以有规律的方式提取结构化数据。例如,要提取的html结构是:lt;div class = 'stime'gt; (2016/12/31) lt;/ divgt;, 其 路 径 表 达 式 可 以 写 成 XPath// div[@ class = 'stime']。

基于XPath的动态爬虫运行过程如图2所示。

本文利用mysql数据库存储爬虫和ORM技术需要的动态数据提取规则,将关系数据库的结构映射到对象,然后将参数直接传递给爬虫,实现动态加载。

通过这一章节的分析,我们成功实现了动态的数据提取规则,使得我们能够快速修改数据库来增加、更改、删除数据提取规则,并且简化爬虫维护操作。但是数据提取规则仍然需要人工提取,如何进一步爬取数据提取规则,是简化后续研究重点的需要。

图2.爬虫数据提取规则动态加载流程图

3.半自动化获取数据提取规则

数据提取规则被定义为爬虫较为复杂的部分,对于结构化严格的网页存储数据,只有开发人员知道需要获取的字段和存储表的结构。为了保证数据的准确性,用户需要提供辅助需求,访问目标Web应用,并将提取字段的示例带回到智能动态爬虫中。例如,用户根据自己的需求提交一个具有代表性的文本,包含标题、内容、时间等几个字段,然后根据提交的文本,程序自动带回相应内容的XPath,写入数据库并进行动态加载。

Xpath获取核心代码

req = urllib2.Request(target_url)

req.add_header(

User-Agent, 'Mozilla/5.0 (compatible; MSIE 6.0;

Windows NT 8.1; SV1; .NET CLR 2.0.50727)')

response = urllib2.urlopen(req, timeout=10)

shtml = response.read()

response.close()

hpage = HTML.fromstring(shtml)

htree = etree.ElementTree(hpage)

for t in hpage.iter():

if 'match words' in t.text_content():

if max_lengthlt;len(htree.getpath(t)):

max_length = len(htree.getpath(t))

max_XPath = htree.getpath(t)

return max_XPath

DOM节点是嵌套的,所以XPath爬取一个通道可能会返回多个结果,通常需要爬取保存在网络最内部的网络数据。因此,本文保存了最长的XPath作为数据提取规则。

4.基于TF-IDF的自动获取数据提取规则的方法

本文介绍了一种基于TF-IDF模型的数据自动采集方法。

为了确保爬虫收集的数据与主题相关,本文首先定义了一个主题关键字字典,同时,用n个权重词表示Web文档,然后用TF-IDF方法计算关键词(关键词,W)和Web文档(网页,P)。

  1. 术语频率(术语频率,TF)。在规范化表示的数量中,Web文档中的关键字数量是关键字频率,用于描述主题关键字与文档的相关性。

fre(p,w)表示在Web文档p中,关键字w出现的次数。

  1. 反向文档频率。反向文档频率反映关键字的稀缺程度及其与文档的相关性。

dfre(p,w)表示出现关键字w的Web文档p的数量,|P|表示文档总数。

文件总数除以文件数量的变化。

通过1个关键字与Web文档来定义相关系数。对于关键字w与Web文档p,它们的相关系数计算如下:

相关系数反映了两者之间的密切关系,值越高,主体的相关性越高。

基于TF-IDF方法的数据提取规则自动获取技术无法实现严格的字段要求,结构化存储Web数据。该方法计算Web文档与主题关键字之间的相关系数,然后直接从结果完成提取的存储过程,从而实现自动化存储。

5.动态爬虫的智能化应用

近年来,网络安全事件越来越受到人们的关注,大家对各种系统都导致了漏洞,尤其是0day漏洞,也感到很难察觉。但实际情况并非如此,90%以上的安全事件是由已知的漏洞引起的。有两点可以确定攻击者是否可以利用已知的漏洞:漏洞公共时间t1和漏洞恢复时间t2。只要攻击漏洞时间在t1和t2之间,攻击者就会成功,所以可以说时间周期是“已知漏洞攻击时间窗口”(如图3所示)。因此,对于防守者来说,减少t1和t2之间的时间差对于防范已知漏洞至关重要。

图3. 公共漏洞攻击时间窗口

基于上述分析,本文基于漏洞社区和网页节点搜索引擎提供的Web数据,将智能动态爬虫应用于已知的漏洞威胁,用于发现社区漏洞信息,同时结合他们自身情况,提出漏洞威胁预警,威胁风险评估,将被动威胁改变为主动感知威胁,及早修复漏洞或暂时停止服务,缩短已知漏洞攻击时间窗口,可以大大降低系统被攻击的风险。

  1. 基于漏洞社区获取已知漏洞的数据

漏洞社区网站是公共漏洞数据的重要来源,包括大量非结构化数据的结构化处理需求,处理后易于分析和使用,爬虫是收集和处理非结构化Web数据的重要工具。因此,在本章节,采用智能动态爬虫对漏洞社区的实时数据进行采集,动态加载数据提取规则。

漏洞社区是由商业公司或其他组织维护,广大安全研究员和安全厂商对漏洞进行研究,建立漏洞研究和知识学习的开放共享平台,提高互联网基础设施和服务的安全性。漏洞社区根据时间,从近到远发布信息,包括名称、编号、概述、受影响的系统、概念证明和发布补丁制造商。根据上述信息,安全员可以确定是否系统维护受到漏洞的影响,威胁的程度,应急计划的制定和实施。

本文主要关注的社区包括CNNVD,CVE,exploit-db,see bug,wooyun,bugs can等等,漏洞更新速度快,检测机制完善。此外,总是有新的漏洞社区为安全人员提供漏洞报告服务,这对于防御漏洞很重要。

Bugs can和see bug的设计者介绍了基于漏洞社区的安全相关产品的设计思路和体系结构,对该方向的研究具有重要意义。基于前面的工作,本文的主要目的是通过动态爬虫研究公共漏洞威胁感知系统的构建。

网络容器,程序框架,通常发布在漏洞社区网站平台上的第三方应用漏洞,漏洞,不同组织维护的社区,这些导致社区的存在需要大量Web数据的爬取,监控和分析。在爬虫搭建搜索引擎和检测Web漏洞的过程中,最重要的是链接到网页提取,保证数据采集的完整性和检测的高覆盖率,这意味着传统爬虫提取规则需链接归并。利用传统爬虫对数据的社区结构进行挖掘,我们需要针对不同的社区定制规则,调试爬虫,然后进行提取。当网站结构改变或新社区加入时,需要调整代码的结构和规则,复杂的维护。为了降低爬虫的开发维护成本,兼顾爬虫对动态规则的提取规则,可以随时添加,删除和修改,满足大量网页数据采集的需要。爬虫设计改进的动态规则方法,使用固定的爬虫框架和存储在数据库中的规则,使爬虫灵活地向社区改变数量和结构,收集社区发布的已知漏洞信息的实时数据,为及时检测已知漏洞提供前提条件。表1展示了通过智能动态爬虫从发布的公共漏洞中获得的XPath。

表1.漏洞社区的XPath

使用异步传输访问漏洞数据的社区可以通过嵌入式浏览器程序获取目标页面,然后从加载的DOM元素中提取相关的漏洞信息,以公布漏洞细节,这种方法也适用于传输加密数据页面。

  1. 基于网络节点的搜索引擎关键字查找

第4.1章节提出了一种针对漏洞社区中漏洞的实时获取方法。然而,没

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[260240],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。