CompanyLOGO网络爬虫23133基本过程4挑战与建议主要模块网络爬虫的定义35附录:开源爬虫3网络爬虫Crawler,即Spider(网络爬虫),其定义有广义和狭义之分。狭义上指遵循标准的http协议,利用超链接和Web文档检索方法遍历万维网的软件程序;而广义的定义则是能遵循http协议,检索Web文档的软件都称之为网络爬虫。网络爬虫是一个功能很强的自动提取网页的程序,是搜索引擎中最核心的部分,整个搜索引擎的素材库来源于网络爬虫的采集。其性能好坏直接影响着搜索引擎整体性能和处理速度。4网络爬虫基本过程打开初始URL解析WEB文档采集网页满足停止条件,结束采集抽取新的URL加入主要模块网络爬虫基本过程如图所示,系统中主要模块如下:控制器:是网络爬虫的中央控制器,它主要是负责根据系统传过来的URL链接,分配一线程,然后启动线程调用爬虫爬取网页的过程。解析器:是负责网络爬虫的主要部分,其负责的工作主要有:对网页的文本进行处理,如过滤功能,抽取特殊HTML标签的功能,分析数据功能.下载网页数据,包括html、图片、doc、pdf、多媒体、动态网页等。资源库:主要是用来存储网页中下载下来的数据记录的容器,并提供生成索引的目标源。中大型的数据库产品有:Oracle、SqlServer等挑战太多和主题不相关的信息HTML页面结构各不相同下载的海量资源如何处理大型网站对爬虫的限制建议明确的需求及根据尽量限定主题范围尽量限定网页范围限定网页更新的时间范围获取的最好是结构化的数据附录1:开源爬虫Methabot是一个使用C语言编写的高速优化的,使用命令行方式运行的,在2-clauseBSD许可下发布的网页检索器。它的主要的特性是高可配置性,模块化;它检索的目标可以是本地文件系统,HTTP或者FTP。Nutch是一个使用java编写,在Apache许可下发行的爬虫。它可以用来连接Lucene的全文检索套件;Pavuk是一个在GPL许可下发行的,使用命令行的WEB站点镜像工具,可以选择使用X11的图形界面。与wget和httprack相比,他有一系列先进的特性,如以正则表达式为基础的文件过滤规则和文件创建规则。WebSPHINX(MillerandBharat,1998)是一个由java类库构成的,基于文本的搜索引擎。它使用多线程进行网页检索,html解析,拥有一个图形用户界面用来设置开始的种子URL和抽取下载的数据;WIRE-网络信息检索环境(Baeza-Yates和Castillo,2002)是一个使用C++编写,在GPL许可下发行的爬虫,内置了几种页面下载安排的策略,还有一个生成报告和统计资料的模块,所以,它主要用于网络特征的描述;WebCrawler是一个为.net准备的开放源代码的网络检索器(C#编写)。附录2:开源爬虫SherlockHolmes收集和检索本地和网络上的文本类数据(文本文件,网页),该项目由捷克门户网站中枢(CzechwebportalCentrum)赞助并且主用商用于这里;它同时也使用在。YaCy是一个基于P2P网络的免费的分布式搜索引擎。Ruya是一个在广度优先方面表现优秀,基于等级抓取的开放源代码的网络爬虫。在英语和日语页面的抓取表现良好,它在GPL许可下发行,并且完全使用Python编写。按照robots.txt有一个延时的单网域延时爬虫。UniversalInformationCrawler快速发展的网络爬虫,用于检索存储和分析数据;AgentKernel,当一个爬虫抓取时,用来进行安排,并发和存储的java框架。是一个使用C#编写,需要SQLServer2005支持的,在GPL许可下发行的多功能的开源的机器人。它可以用来下载,检索,存储包括电子邮件地址,文件,超链接,图片和网页在内的各种数据。LWP:RobotUA(Langheinrich,2004)是一个在Perl5许可下发行的,可以优异的完成并行任务的Perl类库构成的机器人。CompanyLOGO