摘要:垂直搜索引擎作为一种新型的搜索引擎服务模式,它的出现彻底解决了通用搜索引擎中一直存在的信息量大、查询不准确、深度不够等一系列问题。该文通过对Heritrix体系结构的深入分析,详细阐述了Heritrix在垂直搜索引擎中实现数据搜集的整个过程。
关键词:垂直搜索引擎;网络蜘蛛;Heritrix;体系结构
中***分类号:TP311文献标识码:A文章编号:1009-3044(2012)15-3662-03
Heritrix Architecture-based Vertical Search Engine
CHEN Hao, GUAN Wei
(Guangdong Technical College of Water Resources and Electric Engineering, Guangzhou 510635, China)
Abstract: The vertical search engine as a new search engine service model, It completely solved the large amount of information has always existed in the general search engine query is not accurate, not deep enough, a series of questions. In this paper, in-depth analysis of the Her itrix architecture, Described in detail the whole process Heritrix data collected in the vertical search engine.
Key words: vertical search engine; web spiders; Heritrix; architecture
搜索引擎是指根据一定的策略、运用特定的计算机程序从互联网上搜集信息,在对信息进行组织和处理后,为用户提供检索服务,将用户检索相关的信息展示给用户的系统。
垂直搜索引擎是针对某一个行业的专业搜索引擎,是对搜索引擎的细化和延伸,是对网页库中某类专业信息进行的一次整合,通过定向分词字段抽取出需要的数据,经处理后再以特定的数据库格式返回给用户。
i J2vm7Gji;z0垂直搜索引擎相比通用搜索引擎最大的区别在于对网页信息的结构化信息抽取,通过将网页中的非结构化数据抽取成特定的结构化信息数据。通用搜索引擎是基于视觉的网页块分析,以网页块作为最小单位;而垂直搜索是以结构化数据作为最小单位,将这些结构化数据存储到数据库中,经深度加工即去重、分类、分词、索引等一系列处理后,再以检索的形式满足用户的需求。中国经济网经济博客*c’vwjq8zT)X
垂直搜索引擎的应用领域广泛,比如企业库搜索、供求信息搜索引擎、购物搜索、房产搜索、人才搜索、地***搜索、mp3搜索、***片搜索等等,几乎各行各业各类信息都可以进一步细化成各类的垂直搜索引擎。
1垂直搜索引擎的数据采集技术
垂直搜索引擎由抓取模块、索引模块、搜索模块和信息数据库组成。抓取模块通过网络蜘蛛负责在信息源中抓取数据并存入信息数据库;索引模块对信息数据库中的数据建立索引库为用户提供快速的检索服务;搜索模块一般以B/S形式出现,根据用户的检索词为用户提供有效的检索信息;信息数据库中则存储了抓取模块抓取回来的信息。
垂直搜索引擎抓取模块中的网络蜘蛛和通用搜索引擎网络蜘蛛相比更加专业,定制化范围针对性更强。可定向性的采集和垂直搜索范围相关的网页忽略不相关的网页和不必要的网页,选择内容相关的以及适合做进一步处理的网页,通过深度优先采集策略,对页面更新频率有选择的进行调整。根据垂直搜索引擎对信息要求的特点,数据采集须由以下几个方面进行考虑:
1)信息源的稳定性,不能让信息源网站感觉到来自网络蜘蛛的压力。
2)抓取成本的控制问题。
3)用户检索方式的改善程度。
根据以上三点制定一种较好的爬取策略,要做到恰到好处。策略上可以对网站中网页更新的系数、网页的重要系数、用户点击系数(或曝光系数)、网站稳定系数先行做评估,根据这些系数来确定这些网站中网页更新的频率。再由此更新频率对网页进行分级判定,以此降低成本又很好的解决了更新网页的抓取问题,系数比较低的网页一月抓取一次,稍微高点的一周抓取一次、中等的几天到一天抓取一次、高的几小时到几分钟抓取一次。
2 Heritrix的特点
基于系统可移植性和可扩展性的方面考虑,垂直搜索引擎的网页搜集部分使用开源的Heritrix作为爬虫(或网络蜘蛛)。Heri trix作为Java开源项目,是SourceForge上的开源产品。其实现原理是根据给定URL地址向网站提交HTTP请求,抓取网络资源,获取完整、及时的站点内容。通过分析已***网页内的有效链接URL地址,进一步获取更多的网络资源。Heritrix可以通过Web用户界面方便地启动和管理***进程,控制策略灵活。也可以获取***像以及其他非文本内容。储存的页面内容不会被修改,完成相应网页库结果,并生成本地文件及相应的日志信息。
Heritrix作为网络蜘蛛,具有以下特点:
1)专注的网络信息***功能。
2)适用于各种类型网页信息并严格保持网页原貌。
3)在保留历史的***网页库内容基础上不断地添加新的***内容。
4)以任务形式管理并提供命令行和友好的Web控制界面。
5)可配置参数众多可更为灵活地管理***任务。
3 Heritrix体系结构分析
Heritrix的体系结构是采用了多线程和链接队列的形式组织。整个系统的工作部分可以分成对配置文件管理部分、***任务管理部分、***控制部分和***工作单元。附带的工作队列、缓冲区等的引入则为网络蜘蛛提供了良好的性能。
整个体系围绕***控制器组织,从外部配置文件获取运行参数和***任务配置。生成***任务管理器和待***的网络资源列表。
1)整个系统结构中以多线程队列作为工作的基本机制,不断地从任务管理其获取新的***列表。
2)***列表经过抓取范围控制器进行过滤,提交给***地址管理器。
3)***管理器中的网页URL,根据控制器要求,形成等待***队列。
4)处理器链接根据***队列的内容,根据处理器和线程池等其他资源的空闲情况,不断形成内部的工作链。
5)最终调用负责网络访问的CrawlURL对象进行处理,得到的***页面经过分析提供新的***链接,填充到***任务队列中。
上述的基本过程不断循环,完成新资源的发现和已***资源的不断更新,最终形成一个自动运行的网络蜘蛛。Heritrix网络蜘蛛工作的体系结构如***1所示:
4 Heritrix的功能和作用
***控制器是整个体系的总体框架,控制器组合网络蜘蛛的各种工作部件。其中每一部分的功能和作用描述如下:
1)***控制器CrawlController
***控制器CrawlController是整个***过程的总控和指挥者。控制其他功能部件的协调工作,组合了在网络抓取过程中所有需要协同工作的功能类。以主线程的形式运行,为网络蜘蛛的运行提供了高层的访问接口,避免使用者的复杂操作。通过调度,最终把***地址管理器Frontier中地址列表传递给线程池中的ToeThreads,完成***任务。***控制器中的不同组件不必互相调用,通过控制器就可以完成联系,形成了整体的运行环境。
2)***管理器CrawlOrder
***管理器CrawlOrder根据配置信息生成***的任务对象,任务配置信息通常读取Order.xml和seed.txt的内容形成。读取的结果会形成一系列的***任务内容属性。Order.xml用来配置爬取过程中的功能类组合,可以用于功能扩展。Seeds.txt文件时用来存放希望抓取的网站入口地址。
3)范围控制器CrawlScope
CrawlScope是按照规则对***内容进行过滤,主要控制将哪个URL入队。使用范围控制器可以避免***内容的无限膨胀。
4)边界控制器Frontier
边界控制器Frontier主要用来确定下一个将被抓取的网页。实现对网站访问的均衡处理,避免过多线程同时访问同一网站造成网站的压力。***后的结果也被返回Frontier中,利用分析得到的新的URI进行后续访问。Frontier内至少要包括最新发现的URL资源列表、正在处理的URL列表、已经***的URL列表。Frontier工作中需要依赖PreconditionEnforcer、LinksScoper和Frontier Scheduler对象。PreconditionEnforcer对象用来在抓取前检查DNS和robots,避免非法抓取;LinksScoper用来判断正在处理的地址是否属于***范围内,***优先级如何控制等;The FrontierScheduler用来把新发现的地址URLs添加到Frontier中安排***。
5)服务器缓存Servercache
服务器缓存Servercache实现搜索引擎汇中的DNS缓存功能。Servercache中存放服务器的持久信息,包括IP地址、历史***记录、机器人策略等。缓存中的信息能够被爬行部件随时查到,用来加快网络爬虫的***速度。
6)Web管理控制台
Web管理控制台依赖于Heritrix服务已经启动,为用户提供更方便的访问方式。管理控制台提供了密码保护,相关的内容在Heritrix的配置参数里使用。
7)Crawler命令处理部件
操作者可以通过选择Crawler命令来操作控制台。通过命令行参数也可以方便地操作网络蜘蛛,其中包含了足够的信息表明要爬的URL和操作控制参数。
8)处理链ProcessorChainList
处理链保存了当前网络爬虫的任务链表,储存当前的工作状态和控制***流程。处理链中主要包含了五个重要的链表,包括:预取处理链(Pre-fetch processing chain)、抓取处理链(Fetch processing chain)、抽取处理链(Extractor processing chain)、写处理链(Write/index processing chain)、提交处理链(Post-processing chain)。
1)预处理链(Pre-fetch processing chain):主要根据robot协议、DNS以及***范围控制信息判断网络地址是否当前***,另外完成一些准备工作,如对处理进行延迟和重新处理。内部依赖于Preselector和PreconditionEnforcer类对象完成相应的功能。
2)抓取处理链(Fetch processing chain):主要是***获得需要的各种网络资源,利用FetchHTTP等功能类,完成DNS转换、填写HTTP资源请求和响应表单,接收获得的信息。
3)抽取处理链(Extractor processing chain):当提取完成时,分析网页内的HTML和JavaScript,提取新的资源URL,保持到相应的队列。
4)写处理链(Write/Index processing chain):存储爬行结果,返回内容和抽取页面特征,完成信息过滤并储存。采用默认的ARC? WriterProcessor进行处理,通过扩展的处理,可以直接完成分析和索引并存储操作。
5)提交处理链(Post-processing chain):完成最后的日志和资源维护,所有队列资源都会最终进入提交处理链,即使被拒绝***的资源地址也会进行边界测试等操作。内部依赖于CrawlStateUpdater、LinksScoper、FrontierScheduler等操作。
5 Heritrix工作流程
Heritrix整个处理链协调工作前后衔接,形成网络蜘蛛的流水式***流程,最大程度地发挥系统工作效率。其工作流程结果如***2所示:
6结论
Heritrix丰富的体系结构和多元化的定制功能,为垂直搜索引擎更加专注、具体和深入的信息化服务模式提供了必要的数据支持,为满足某一特定领域或某一特定人群对于某一特定信息需求提供了有效保证。
参考文献:
[1]黄玮夏.分类搜索引擎的体系构建及其使用方法探析[J].情报科学,2010(4).
[2] Sriram Raghavan,Hector Garcia-Molina.Crawling the hidden Web[C].Proc. of the International Conference on Vary I arge Data Bas es(VLDB), Rome, Italy,2010,9.
[3]陈振宇,赵继海.搜索引擎的工作机制与web信息检索技术[J].情报检索,2009(11).
[4] Almpanidis G,Kotropoulos C,Pitas.I Combining Text and Link Analysis for Focused Crawling - an Application for Vertical Search Engines[J].Information System,2007,32(6)886-908.
[5] Kapetanios E,Sugumaran V,Spiliopoulou M.An Ontology-Based Focused Crawler.LNCS 5039,2008,376-379.
转载请注明出处学文网 » 基于Heritrix体系结构的垂直搜索引擎研究