首页 > 范文大全 > 正文

基于网络原型挖掘的AjaxCrawler系统研究

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于网络原型挖掘的AjaxCrawler系统研究范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要:自媒体时代,网络舆论管理、议题管理和危机管理变得十分困难,解决难题的关键是对网络用户身份的有效识别,而传统的用户身份识别所遵循检索发现收集的过程,存在人工参与度大、缺少真实性评估、时效带来的数据丢失等缺陷。本文探索一种对互联网开放数据的主动收集方法,并针对目前交互式网络站点普遍使用Ajax技术的特性详细设计了AjaxCrawler系统,采用并发策略,相对传统爬虫系统具有更好效率和稳定性。

【关键词】爬虫 ajax 并行

1 背景

自媒体时代,网络舆论管理、议题管理和危机管理变得十分困难,解决难题的关键是对网络用户身份的有效识别。目前,用户身份识别主要依赖人工检索结合技术提纯的方式,也就是通过在网络中检索用户分享的数据,从中查找身份信息之间的相关关系、身份特征信息,最后结合技术手段获取真实身份,简单来说就是先检索再发现最后收集的过程。优势是,随着用户分享带来的数据丰富性,可以挖掘的潜在相关关系越丰富。然而,缺陷也很明显,一是效率不够,对广泛互联网数据的搜索需要花费大量人力;二是缺少真实性评估,相关关系没有绝对,只有可能性,面对不对称的检索结果,真实性势必受到主观偏见的影响;三是时效性带来的数据丢失,无论是用户的主动删除还是资源平台的被动删除,缺少主动收集机制造成的数据丢失不可避免。

为了解决上述存在的缺陷同时让优势大放异彩,本文提出一种用于网络原型挖掘的ajaxcrawler系统,通过主动收集的方式对现有工作模式进行有效升级。

2 设计目标和详细设计

网络原型挖掘的对象主要是提供用户数据交互的web、bbs站点,而此类站点为了提供更好的用户体验多在开发中采用AJAX技术,所以AjaxCrawler的设计重点是实现对支持AJAX技术的动态网页的有效挖掘。

2.1 设计目标

设计主要考虑几方面因素:一是抓取质量,针对Web、Bbs采取不同的抓取策略,通过JavaScript解析器实现对AJAX动态页面完整抓取,同时支持JS代码中的DOM操作,以获取页面元素、修改页面元素的内容;二是抓取效率,针对网络延迟、站点限制等因素采取并行策略,使爬虫同时处理不同的URL,以提高网络带宽利用率,加快处理速度;三是抓取策略灵活性,能够设定采集范围、采集频度、采集时间和采集深度,以期能达到最好的特定信息采集效果。

2.2 详细设计

系统采用四层结构。第一层Client节点是门户和命令入口,用户通过它进行任务下发、查看执行结果;第二层Master节点是唯一的控制器,连接Client和Crawler,进行任务的抽取和分发;第三层XCrawler节点由不同的Crawler组成,结构上便于扩展,同时,将Ajax模块独立出来以降低系统耦合性,便于针对非JS脚本页面添加其它引擎;第四层Depository节点是系统仓库,存储运行结果等信息,此讨论重点将不再提及。本系统的通信库基于MINA开发,系统各节点之间通信,只需要调用相应的API即可,不用关心通信细节。系统体系结构设计,如图1所示:

2.2.1 XCrawler设计

XCrawler是具体执行任务的节点,分为WebCrawler、BBSCrawler,架构基本相同,仅抓取策略和方式有所区别。其架构如图2所示:

爬虫系统分为两部分,第一部分是预处理,负责净化URL,去除不必要抓取的URL,类似于过滤器。第二部分是网页抓取,由于网页下载比较耗时,为充分利用资源,采用多线程。抓取阶段获得网页,析出网页内部的链接,然后进行预处理,以净化可能包含有以前抓去过的重复URL、Robots协议禁止抓取的URL等。Clean URLs是净化后的URL库,存放需要抓取的URL。

2.2.2 页面预处理

(1)页面去重 为避免页面重复抓取,系统包含网页去重管理机制,建立了一个可维护的HASH表,记录已处理过的URL的MD5值。页面预处理通过判断任务URL的MD5值在HASH表中是否存在,来判断URL是否重复。

(2)HTTP协议控制和URL文件格式控制 目前只支持HTTP协议,HTTP协议控制用来检测URL协议,如果不是HTTP协议直接抛弃;系统收集对象是包含用户身份信息的网页文本,一些多媒体格式,比如MP3,AVI和JPG等格式并不需要,URL文件格式控制用来过滤不支持的URL。

(3)Robots控制。遇到一个新网站时,首先会通过Robots文件管理模块获取该网站的robots.txt文件,然后根据robots.txt的文件规定控制URL的抓取。

2.2.3 AjaxEngine设计

3 AjaxCrawler的实现

3.1 Crawler的实现

对于Internet上不同类型的网站,采用单一的抓取模式、抓取策略,显然不合适宜。如前文所述,本系统Crawler包括WebCrawler、BbsCrawler两种Crawler,以下逐一叙述。

3.1.1 WebCrawler

对于最基本的Web内容,设置一定的抓取深度,配置广告等无关内容的过滤器,依照Web内容更新频度设定爬虫的更新频率,依照详细设计中的XCrawler的框架,实现较为简单,这里不再赘述。

3.1.2 BBSCrawler

3.2.2 DOM Builder

DOM Builder建立JS对象与HTML对象的映射,构造DOM树,触发事件等功能。本系统借助NokoHTML扫描HTML文本,建立DOM树。NekoHTML还能增补缺失的父元素、自动用结束标签关闭相应的元素及不匹配的内嵌元素标签。使用NekoHTML进行DOM树建立接口很简单,使用NekoHTML中DOMParser对网页进行解析即可。

Rhino在执行JS代码时,需要根据JS对象与HTML对象映射表修改DOM树中的元素内容。本系统中,借用了HtmlUnit建立的JS对象与HTML对象之间的映射关系。在Html Unit中,继承了W3C的DOM接口,同时实现了JS对象与HTML对象之间的映射。

4 结束语

本文在分析了互联网身份管理的现状和优缺点后,根据大数据相关关系分析法的理念基础,提出一种通过爬虫技术对互联网交互式站点中开放数据进行主动收集,挖掘其中存在身份信息以及身份信息件存在的相关关系的工作方法,从而通过已知身份挖掘出可能尚未掌握的未知身份信息,同时针对现有交互式网站普遍采用Ajax技术模式详细设计实现了AjaxCrawler挖掘模型,是现有网络身份管理模式的升级和有力补充。最后,作者相信随着科技浪潮的发展,更多的管理困境将找到更好的解决方案。

参考文献

[1] 马民虎.互联网信息内容安全管理教程[M].北京:中国人民公安大学出版社,2008.

[2] 李学凯.面向多任务、多通道并行爬虫的技术研究[D].哈尔滨:哈尔滨工业大学,2009.

[3] 曾伟辉,李淼.基于JavaScript切片的Ajax框架网络爬虫技术研究[J].计算机系统应用,2009.

[4] Viktor Mayer-Sch?nberger,Big Data:A Revolution That Will Transform How We Live, Work,and Think[M].Hodder,2013.

[5] 罗兵.支持 AJAX 的互联网搜索引擎爬虫设计与实现[D].杭州:浙江大学,2007.

作者单位

合肥市公安局网安支队安徽 安徽省合肥市 230001