APP下载

基于浏览器服务的网络爬虫

2009-03-14廖闻剑

新媒体研究 2009年4期
关键词:网络爬虫

彭 轲 廖闻剑

[摘要]主要描述支持基于浏览器服务的爬虫的大体实现方式,并进行相关测试。

[关键词]网络爬虫 Javascript Ajax 浏览器服务

中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)0220050-01

一、引言

在这个信息爆炸的时代,从网络上寻找自己所需要的信息越来越离不开搜索引擎,这种快捷而便利的方式已越来越受人青睐,而Baidu,Google,Yahoo等搜索引擎的成功标志着搜索引擎已不再是IT人士才懂的专有名词。搜索引擎带给我们的庞大的信息量和便捷的操作使得复杂的互联网高维网状结构简化为平面,平面的中心是信息的使用者,各种信息触手可及。

随着时代的变迁,技术的进步,现今的页面展现技术已呈多种多样的方向发展,最显著的进步AJAX技术的问世将传统的同步式页面,转变为异步式页面。给用户带来了桌面式的网页体验。

人们不再像过去只能面对整体刷新的同步页面,使得网上遨游更轻松,随意。但同时这一技术给搜索引擎带来了巨大的挑战。异步页面,事件触发的模式使得传统的搜索引擎前端(即网络爬虫)无法获取到全部的网页信息。于是对JSCrawler或AjaxCrawler的研究逐渐热门起来。

大多数的AjaxCrawler通过包含JS解析器来实现对Javascript代码的解析,执行等工作,逻辑复杂,代码量大。且重复了许多前人的工作。

介于DOM解析,JS解析与执行是浏览器工作的一部分,于是本文采用直接在后台调用浏览器的方法完成相关的解析工作。

二、总体设计方案

一般的JSCrawler通过提取出Javascript代码,运用js解析模块解析,执行,实际上是对浏览器解析工作的裁减,而且在构建DOM对象时不但工作量庞大而且还存在很多的隐患,适用范围比较窄。与其提取或者重写浏览器的某项功能,何不直接将浏览器作为网络爬虫的服务器,让其解析出页面中的URIs交付给爬虫系统进行相关提取工作。而本系统就是基于这个思想设计的。如图1为该模型的总体设计方案。

通过将URL传递给BrowseServer获取初始页面,接着有BrowseServer

分析处理页面准中的代码,找到页面中各个链接对应的位置,然后通过模拟点击操作由BrowseServer生成Http post方法,获取下层或异步传递的页面。

三、网页分析流程

由于有了浏览器这个强大的解析工具,网页分析不再是难题。浏览器分析网页,解析AJAX代码。生成相应的DOM对象及对应的URL链接。我们从脚本输出流中提取相应链接,获取页面数据即可完成爬取工作。

模块流程图如图2:

四、运行测试

如图2是使用IEServerCrawler爬取网页某个js网站(www.qolin.com)的测试,为方便后面进行对比,因此本系统采用单线程。系统环境为:

CPU:P4 3.02G

系统环境:WindowXE

运行环境:Eclipse6.0

网络环境:电信10M ADSL

对于普通网站即含有JS代码较少的网站(www.baidu.com)测试结果如表1:

对于JS网站即含有JS代码较多的网站(qolin.com)测试结果如表2:

对于BrowserServerCrawler我们可以看到不管是普通网站还是大型的JS网站,都有不错的抓取性能。特别是在JS代码较多的网站上表现出了超过普通爬虫的优势。但抓取时间的劣势上却也同样是显著的。

五、结束语

使用IE作为服务器的设计具有强大的JS解析能力能解决单纯的JS解析带来的解析能力单一的问题,但由于启动IE服务的耗时,IE解析中包含了太多页面展示方面的解析问题,使得基于IE服务的网络爬虫在抓取速度上略有逊色。原因在于浏览器的启动,解析与获取链接无关的信息方面耗费了大量的时间,同时处理普通页面使用该系统存在极大的资源损耗,而普通页面在网络中依然占有较大的比例。如何设计一个在性能和效率上同时出色的AJAX爬虫还有待我们继续研究。

参考文献:

[1]Lawrence S,Giles C L.Searching the world wide web.Seience.1998,280:98-100.

[2]Lin S H,Ho M J.Discovering informative content blocks from Web documents. Proceedings of the Eight ACM SIGKDD International Conference on knowledge Discovery and DataMining.2002.

[3]Najork M,Heydon A..High-performance Web Crawling.Compaq Systems Researeh Center.2001.

[4]ChoJ.Crawling the Web:Discovery and maintenance of large-scale Web data.Stanford University, doctoral dissertation,2002.

[5]ChoJ,Garcia一Molina H.The Evolution of the Web and Implications for an Incremental Crawler Proceedings of 26th Intemational Conference on Very Large Database(VLDB).

[6]谢正茂,Web数据模型以及获取、存储方法研究,北京大学,硕士论文.

[7]印鉴、陈忆群、张钢,搜索引擎技术研究与发展,计算机工程,2005(7):54-56.

[8]贾红英,网络搜索引擎探析[J].情报资料工作,2002,3.

[9]李晓明、闰宏飞、王继民,搜索引擎——原理、技术与系统,北京:科学出版社,2005:30-54.

[10]张兴华,搜索引擎技术与研究[J].现代情报,2004,(4):142-145.

[11]邱诚,搜索引擎及其发展浅析[J].图书馆研究与工作,2002,(2):8-10.

作者简介:

彭轲,男,汉,湖北武汉,硕士研究生,主要研究方向为通信软件。

猜你喜欢

网络爬虫
炼铁厂铁量网页数据获取系统的设计与实现
基于社会网络分析的权威网页挖掘研究
主题搜索引擎中网络爬虫的实现研究
浅析如何应对网络爬虫流量
网络爬虫针对“反爬”网站的爬取策略研究