已阅读5页,还剩97页未读, 继续免费阅读
(计算机应用技术专业论文)基于java的垂直搜索引擎的设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 互联网的信息量呈爆炸趋势增长,增强了人们对搜索技术的依赖性。搜索引 擎是开启网络知识殿堂的钥匙,获取知识信息的工具。但随着网络技术的飞速发 展,获取更加准确、更加详细、更加深层的专业信息,成为对搜索引擎提出的新 要求。 本文首先阐述了搜索引擎的发展历史,搜索引擎内部结构和实现原理。在分 析了目前通用搜索引擎存在的问题后,进而引出垂直搜索引擎的概念,指出垂直 搜索引擎的自身特点和发展前景。对现有的开源项目h e r i t r i x 和l u c e n t 的内部功 能架构进行了分析论述,在理解其设计思想的基础上进行扩展利用,探索性的提 出了利用现有开源代码设计一个手机产品垂直搜索引擎的设想和实现思路。结合 程序代码说明,一步一步地完成对指定网页的抓取、产品参数信息的抽取、生成 词库、建立索引和将信息保存到数据库。最后建立了w e b 查询界面完成对整个系 统的构建工作。系统最终实现了概要设计中所有预定功能。本文的设计思路和实 现方法,无论是对研究垂直搜索技术,还是构建一个实用的垂直搜索引擎都有一 定的参考和借鉴价值。 图3 1 表2 参4 3 关键词:垂直搜索引擎;网络蜘蛛;l u c e n e :h e r i t r i x ;网页信息抽取;j a v a 分类号:t p 3 1 1 5 2 0 4 0 安徽理工大学硕士学位论文 a b s t r a c t w i t ht h ee x p l o s i v eg r o w t ho fi n t e m e ti n f o r m a t i o n , p e o p l eb e c o m em o r ea n dm o r e d e p e n d a b l eo nt h e i n t e r n e ts e a r c he n g i n e ,w h i c hb e c o m et h ek e yt oo p e nu pt h e k n o w l e d g ep a l a c ea n dt h et o o lt oa c q u i r et h ek n o w l e d g e w j t l lt h ei n c r e a s i n go ft h e i n t e r n e ti n f o r m a t i o n , p e o p l en o ww a n tt og e tm o r ea c c 旧钯,m o r ed e t a i la n dm o r e d e e p - s e a t e dc l a s s i f i e di n f o r m a t i o n , w h i c hi sn e wd e m a n d e ds e r i v i e et oi n t e m e ts e a r c h e n g i n et op r o v i d ei n t h ef u t u r e t h i sp a p e rf i r s ti n t r o d u c e st h eh i s t o r y , i n n e rs t r u c t u r ea n dt h ep r i n c i p l eo fs e a r c h e n g i n e a f t e ra n a l y z i n gt h ee x i s t i n gp r o b l e mo fg e n e r a ls e a r c he n g i n e ,e l i c i tt h e c o n c e p t i o no fv e r t i c a ls e a r c he n g i n ea n dp o no u ti t sc h a r a c t e r i s t i c sa n df u t u r e t h e n e x p a n dt h ed e s i g nt h o u g h to fo p e n - s o u r c 圮p r o j e c t s ,h e r i t r i xa n dl u c e n ea n dp r o p o s e t h ec o n c e p t i o no fav e r t i c a ls e a r c he n g i n ef o rm o b i l ep r o d u c t sb a s e do ne x i s t i n g o p e n s o u r c ec o d e c o m b i n i n g 晡t ht h ee x p l a n a t i o no fp r o g r a mc o d e ,s t e pb ys t e p , f m i s hc r a w l i n g p a g e s ,e x t r a c t i n g i n f o r m a t i o no fp r o d u c tp a r a m e t e r s ,g e n e r a t i n g p r o d u c tw o r dl i b r a r y , c o n s t r u c t i n gp r o d u c ti n d e x e ra n dm v i n gt h ei n f o r m a t i o ni n t o d a t a b a s e f i n a l l y , b u i l dt h eq u e r y i n t e r f a c eo fw e bs y s t e ma c c o m p l i s h i n gt h e c o n s t r u c t i o no ft h ew h o l es y s t e m t h es y s t e mr e a l i z e sa l lt h ef u n c t i o n sd e f i n e di n s u n l m a r yd e s i g n t h i sp a p e r sd e s i g ni d e aa n di m p l e m e n t a t i o nm e t h o dh a v es o m e r e f e r e n c ea n di n s t r u c t i v ev a l u et ob o t ht h es t u d yo nv e r t i c a ls e a r c ht e c h n o l o g ya n dt h e e s t a b l i s h m e n to fap r a c t i c a lv e r t i c a ls e a r c he n g i n e f i g u r e3 1t a b l e2r e f e r e n c e4 3 k e y w o r d s :v e r t i c a ls e a r c he n g i n e ,w e bs p i d e r , l u c e n e ,h e r i t r i x ,w e b s i t ei n f o r m a t i o n e x t r a c t i o n , j a v a c h i n e s eb o o k sc a t a l o g : i i - 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及 取得的研究成果。据我所知,除了文中特别加以标注和致谢的地方以外, 论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得 塞邀理王太堂或其他教育机构的学位或证书而使用过的材料。与我一 同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并 表示谢意。 学位论文作者签名: 日期:尹“月丝日 学位论文版权使用授权书 本学位论文作者完全了解塞邀堡王太堂有保留、使用学位论文 的规定,即:研究生在校攻读学位期间论文工作的知识产权单位属于 塞邀垄王太堂。学校有权保留并向国家有关部门或机构送交论文的 复印件和磁盘,允许论文被查阅和借阅。本人授权安徽理工大学 可以将学位论文的全部或部分内容编入有关数据库进行检索,可以采 用影印、缩印或扫描等复制手段保存、汇编学位论文。( 保密的学位 论文在解密后适用本授权书) 学位论文作者张了姊 签字日期:矽年么月力日 导师签名:弼签字日期:q 、年b 月s 日 第1 章绪论 第1 章绪论 1 1 课题背景 进入2 1 世纪,伴随着互联网的持续规模化发展,其上信息资源也成倍的增加。 人们对互联网的需求也从最初的聊天、听歌等娱乐活动慢慢转变为更加实用的衣、 食、住、行、求医、求职、购物等生活的方方面面。目前的通用搜索引擎对用户 更加个性化、细化的信息搜索需求越来越显得有些力不从心了。特别是近两年来 的人们对于m p 3 、图片、视频、音频、播客等资源的搜索需求,增长幅度更加突 出。g o o g l e 、百度等通用搜索引擎,虽然能够帮助人们从海量的网络信息海洋中 找到许多有用的信息,但这些信息往往是涉及各行各业,杂糅在一起。很多时候 还需要在搜索出来的结果页面上这不停的翻页,不停的绞尽脑汁变换关键词,反 复搜索查询才能找到想要的信息,这给人们搜索、查询信息带来很大的不便。 通用搜索引擎的性质决定了其本身存在有一定的局限性。要想包含所有行业 信息就不能对某一领域的信息进行专注。而要专注于某一领域的信息,就会在信 息的覆盖面上大打折扣。事实上,在互联网发展的今天,提供海量的信息已经不 再是搜索领域发展的主要动力,意识和时效性才是真正的动力。之前的通用搜索 的率先出现给使用者灌输了“多即是好一的心理导向,但随着搜索行业的发展, 人们生活方式的改变,“精准”越来越被人们所关注,以前人们看重“阅读尽可能 多的信息 ,而现在“将有限信息作用于实践的效率最大化 才是人们追求的终极 目标【l 】,要能够在最短的时间内找到最准确的,对实践有帮助的信息。如果搜索 引擎提供的信息不是用户所要关心的,即使拥有再大的信息量,也只能是垃圾信 息,对人们生产生活需要无济于事。 , 在这种情况下,一种更专业,更具主题性,针对不同行业提供更加精确的行 业服务的搜索引擎正在酝酿之中。这便是垂直搜索引擎。通用搜索引擎的发展为 垂直搜索引擎的出现提供了良好的市场空间,势必将出现垂直搜索引擎在互联网 中占据部分市场的趋势,也是搜索引擎行业细分化的必然趋势。垂直搜索将逐步 帮助用户认识到“精准才是好 的理念【2 翔。 1 2 搜索引擎发展历史 现代意义上的搜索引擎的祖先,是1 9 9 0 年由蒙特利尔大学学生a l a ne m t a g e 发明的a r c h i e 4 j 。虽然当时w o r l dw i d ew e b 还未出现,但网络中文件传输还是相 安徽理工大学硕士学位论文 当频繁的,而且由于大量的文件散布在各个分散的f t p 主机上,查询起来非常不 便,因此a l a ne m t a g e 想到了开发一个可以以文件名查找文件的系统,于是便有 了a r c h i e 。a r c h i e 工作原理与现在的搜索引擎已经很接近,它依靠脚本程序自动 搜索网上的文件,然后对有关信息进行索引,供使用者以一定的表达式查询。由 于a r c h i e 深受用户欢迎,受其启发,美国内华达s y s t e mc o m p u t i n gs e r v i c e s 大学于1 9 9 3 年开发了另一个与之非常相似的搜索工具,不过此时的搜索工具除了 索引文件外,已能检索网页。从此网页搜索技术一步步发展起来。纵观搜索引擎 技术的发展历程,我们认为现代意义上的搜索引擎大体经历以下四代【5 1 : 1 以经典信息检索理论为基础的第一代搜索引擎 最早现代意义上的搜索引擎出现于1 9 9 4 年。其实现基本较为成熟的信息检索 技术( i nf o r m a t i o nr e t r i e v a l ,i r ) ,相当于利用已有的信息检索技术实现的在 w e b 上的应用。此时,它所索引的网页数量少、检索时间长,用户访问数量也很少。 这一代存在的时间比较短,很快就出现了第二代搜索引擎。 2 以分布式为特征的第二代搜索引擎 为提高数据存储规模和响应速度,大约在1 9 9 6 年出现了采用分布式方案( 多个 微型计算机协同工作) 的搜索引擎系统。分布式网络蜘蛛和分布式数据库的应用是 这一代搜索引擎的主要特点。 3 以人工智能为特点的第三代搜索引擎 自1 9 9 8 年到现在,进入搜索引擎空前繁荣的时期,我们统称这一时期的搜索 引擎为第三代搜索引擎。它主要有三个特点:除了一般意义上的搜索以外,出 现了主题搜索和地域搜索等服务;积极采用w e b 数据挖掘技术。研究内容除了w e b 内容挖掘以外,还包括超链分析和用户使用记录的挖掘;积极采用自动分类技 术来提高网络蜘蛛、信息处理和信息组织的能力。 4 垂直搜索引擎( v e r t i c a ls e a r c he n g i n e ) 第四代搜索引擎 垂直搜索引擎,即专业或专用搜索引擎,就是为查询某一学科或主题的信息 而产生的查询工具,专门收录某一方面、某一行业或某一主题的信息,所以有的 文献也称之为“主题搜索引擎”或“专业搜索引擎 ,在国外较多地被称为垂直搜 索引擎。本论文统一称为垂直搜索引擎。垂直搜索引擎是与通用搜索引擎对应的 一个概念,垂直搜索引擎提供的资源都是与某个领域或主题相关的。与通用搜索 引擎相比,垂直搜索引擎在服务上更有专业特色,有一定程度的个性化。由于垂 直搜索运用了人工分类、专业领域知识等智能化策略,因此它比上面提到的前三 代搜索引擎将更加有效和准确,我们将这类完善的垂直搜索引擎称为第四代搜索 2 第1 章绪论 引擎1 6 。 大型通用搜索引擎将慢慢地演化成多个不同的垂直搜索引擎。新一代的垂直 搜索引擎的出现,并没有完全抛弃上一代的技术和资源,无论从技术上还是从资 源上讲,都是继承和发展的关系【刀,垂直搜索和通用搜索在一定时期内将共同存在, 这样既可以充分保证搜索服务投资者的利益,也使得互联网用户有时问来逐渐适 应这种变化。 1 3 垂直搜索引擎 1 3 1 什么是垂直搜索引擎 垂直搜索引擎是相对通用搜索引擎的信息量大、查询不准确、深度不够等提 出来的新的搜索引擎服务模式,通过针对某一特定领域、某一特定人群或某一特 定需求提供的有一定价值的信息和相关服务。其特点就是“专、精、深 ,且具 有行业色彩,相比较通用搜索引擎的海量信息无序化,垂直搜索引擎则显得更加 专注、具体和深入。垂直搜索引擎为用户提供的并不是上百甚至上千万相关网页, 而是范围极为缩小、极具针对性的具体信息。 与通用的网站搜索引擎相比,电子产品等行业的搜索引擎技术,无论从定位、 内容、用户、还是市场策略等方面,都存在着一些不刚引。例如,经常浏览手机 产品网页的用户,大都希望购买或了解某一款手机。希望了解比通常网页更为详 尽的信息,如品牌、价格和主要功能等,而不是像g o o g l e 或百度那样内容泛泛的 介绍性网页。换句话说,电子产品行业的搜索引擎,用户需求较为明确,搜索范 围相应比较小,提供的信息应该更为详尽,即必须能够向客户提供差异化的服务。 针对这种具体的行业要求和不同主题,出现的这种以较新的搜索技术为服务模式 的搜索服务系统,就被为垂直搜索引擎 9 1 。 1 3 2 垂直搜索引擎发展现状 垂直搜索引擎和通用搜索引擎晟大的区别,在于对非结构化的网页信息进行 抽取后,再对已结构化数据进行深度的处理,提供专业的搜索服务【1 0 1 。所以w e b 结构化信息抽取的技术水平是决定垂直搜索引擎质量的重要技术指标。由于垂直 搜索引擎是最近两年才提出的搜索服务,所以这方面的研究无论在国外还是在国 内都尚处于初始酝酿阶段,完全成熟的技术产品还不多见。特别是在音频、视频 的方面的垂直搜索由于要对非结构的流媒体进行解析,存在的技术难度更大【l l 】! - 3 安徽理工大学硕士学位论文 目前国内比较有名的垂直搜索引擎网站有: 论坛社区搜索代表:奇虎( w w w q i h o o c o m ) 生活搜索代表:酷讯( w w w k o o x o o t o m ) 商业搜索:音速( w w w a n y s o c o m ) 旅游搜索代表:去哪儿( h t t p :w w w q u n a r c o m ) 招聘搜索:搜职( w w w g l o b c h r c o m ) 比价搜索代表:顶九( w w w d i n 9 9 e o m ) 娱乐搜索代表:视频搜索( 嗍o p e n v t v ) 视频搜索代表:雷搜l x 0 0 ( h t t p :w w w l e e x o o e o m ) 值得一提的是雷搜视频搜索,它是目前世界上唯一一款基于视觉特征分析技 术的视频搜索引擎。该引擎在搜索结果中以多个图片方式提供了视频摘要,使用 户可以更加直观地选择要观看的视频。该款视频搜索引擎除了提供文字搜索视频 的服务外,还第一次推出了图片搜索视频和视频搜索视频的服务。该搜索引擎同 时提供在线视频、手机视频、p 2 p 视频搜索等不同类型视频的搜索服务。 国外,垂直搜索引擎的研究正在成为一个新的热点,当前具有代表性的系统 主要有以下几个: ( 1 ) v i s u a l s e e k 系统。 由美国哥伦比亚大学图像和高级电视实验室开发1 2 1 。它实现了互联网上的 “基于内容 的图像视频检索系统,提供了一套工具供人们在w e b 上搜索和检 索图像和视频。 ( 2 ) e i s e v i e r 的s c i r u s 系统 s c i r u s 科学搜索引擎是一种专为搜索高度相关的科学信息而设计的搜索引 擎,获得2 0 0 1 搜索引擎观察授予的“最佳专业搜索引擎奖 。s c r i u s 是目前 互联网上最全面、综合性最强的科技文献门户网站之一1 j 3 , 4 】。它只面向包含有科 学内容的网站,如大学和作者个人主页以及e l s e v i e r 自己的数据库。 ( 3 ) b e r k e l e y 的f o c u s e dp r o j e c t 该系统由一个印度裔的科学家s c h a r k r a b a r t i 带头研究开发,通过两个程序 来指导爬行器:一个是分类器c l a s s i f i e r ) ,用来计算下载文档与预定主题的相关 度:另一个程序是净化器( d i s t i l l e r ) ,用来确定那些指向很多相关资源的页面 o s l o ( 4 ) n e c 研究院的c i t e s e e r c i t e s e e r 是一个非常有名的针对计算机科学领域论文的检索系统。c i t e s e e r 4 第l 章绪论 的核心是a c i ( a u t o m a t i c a l l yc i t a t i o ni n d e x ) ,它可以自动地对网上的电子文 件( p o s t s c r i p t 和p d f 等格式) 进行索引并分类。 ( 5 ) 美国国家科学数字图书馆的c o l l e c t i o nb u i l d i n gp r o g r a m ( c b p ) 这个项目旨在为科学、数学、工程和技术创建大规模的在线数字图书馆,试 图研究在某一主题上资源自动建设的可能性【1 6 1 。 1 3 3 垂直搜索引擎的特点 垂直搜索引擎是相对通用搜索引擎的信息量大、查询不准确、深度不够等提 出来的新的搜索引擎服务模式,通过针对某一特定领域、某一特定人群或某一特 定需求提供的有一定价值的信息和相关服务。它有很多优点: ( 1 ) 提供的信息“专、精、深 ,且具有行业色彩,相比较通用搜索引擎的 海量信息无序化,垂直搜索引擎则显得更加专注、具体和深入。 ( 2 ) 垂直搜索引擎抓取的数据来源于垂直搜索引擎关注的行业站点。在系统 运行上比通用搜索引擎的效率要高。 ( 3 ) 垂直搜索引擎抓取的数据倾向于结构化数据和元数据。提供的信息比较 详细具体。 ( 4 ) 垂直搜索引擎的搜索行为是基于结构化数据和元数据的结构化搜索,搜 索时关键词的选择比较容易。 然而,正因为它的这些突出优点使得它存在自己的缺点: ( 1 ) 要抓取特定领域的网页,使得抓取时要进行判断,以找到特定的网页内 容。种子站点需要人工干预和选择,不易控制。 ( 2 ) 要对网页内容进行深入的解析、抽取和整理,实现技术难度大,不易普 及推广。 ( 3 ) 信息覆盖面较为狭窄,只能提供某一个方面的信息。要构建多个主题的 系统满足需要,重复建设浪费资源。 本文将针对上述垂直搜索引擎的第一和第二个缺点,尝试着通过结合开源代 码来构建一个手机产品的垂直搜索引擎系统模型,从代码的开放性和良好的扩展 性方面入手,来揭示垂直搜索引擎用到的关键技术和一种低成本的实现方法,以 期推动垂直搜索引擎应用的普及推广。 1 4 论文内容 本文主要做的工作可以分为两部分,前面第一、二、三、四章可归为第一部 5 安徽理 :大学硕士学位论文 分。这部分主要是原理、理论介绍部分。包括对搜索引擎基本工作原理和关键技 术的介绍、开源蜘蛛程序h e r i t r i x 的使用和扩展功能以及全文检索工具l u c e n e 的建立索引,实现搜索机理以及中文分词算法的介绍。第五、六章为第二部分, 根据第一部分的理论知识,通过对垂直搜索引擎系统特点和实现技术的分析,结 合扩展利用开源代码,设计并实现了一个简单的手机产品垂直搜索引擎。麻雀虽 小,五脏俱全。该系统很好的描述了垂直搜索引擎的大概轮廓也验证了作者前面 提出的设计思路的可行性。 本文在内容上分六章进行了详细介绍:第一章为绪论部分绪论主要从整体上 介绍本文的研究背景、搜索引擎的基本理论、相关概念和技术、垂直搜索引擎研 究的重要意义和本文的主要研究内容。并通过和通用搜索引擎在信息服务以及关 键技术上的比较分析,指出垂直搜索引擎出现的前景和发展空间。第二章,详细 介绍搜索引擎的工作流程和实现机理、网络蜘蛛程序的概念和设计思想、检索器 和用户接口界面以及常用的搜索结果页面排序算法等。重点介绍了网络蜘蛛程序 设计。第三章,介绍了目前应用最广泛的全文检索工具l u c e n e 开源项目。包括对 全文检索技术的介绍,l u c e n e 项目的来源和框架构成的介绍,以及l u c e n e 所提 供的索引和搜索功能中非常重要的倒排索引技术和评分机制。并结合程序源码介 绍了索引的建立和搜索过程,为后面的应用做了铺垫。最后,还介绍了中文分词 技术。第四章,介绍了开源网络蜘蛛程序h e r i t r i x 相关内容。先介绍了工具包的 下载和在e c l i p s e 中的配置,接着演示了其抓取网页的应用。后面分析了h e r i t r i x 的架构,在熟悉其架构设计的基础上提出了,如何扩展它的接口,为我们所用。 第五章,在前面章节的基础上,提出了构建一个手机产品垂直搜索引擎的思路和 实现方法。在系统设计中介绍了系统的流程,并规定系统所要完成的功能,并分 析其可行性及技术实施路线。第六章,在前一章的思想指导下,构建t o m c a t 工程, 一步一部的实现了一个基于b s 架构的搜索引擎系统。并结合程序代码,给出了 系统关键步骤的原理解释。并在这一章末尾给出了系统的最终完成效果图。接下 来的结论部分做了论文总结。回顾了本论文研究完成的主要工作和在完成过程中 作者取得的感悟、心得。指出本文的手机产品垂直搜索引擎存在的问题和需要改 进、完善的地方,并对垂直搜索引擎技术的发展做了预测和展望。最后,对在论 文完成过程中得到导师和其他人的帮助给予感谢声明。 6 第2 章搜索引擎的实现原理 第2 章搜索引擎的实现原理 由于垂直搜索引擎是通用搜索引擎的细分和延伸,因此,在基本原理和工作 过程方面,与通用搜索引擎基本相同。本章将重点论述通用搜索引擎的基本原理, 先从整体上对搜索引擎的工作原理有一个大概的了解。作为后面实现垂直搜索引 擎的基础。 2 1 搜索引擎工作流程 尽管当前对于各种搜索引擎的分类不同,但从原理上看,搜索引擎主要是指 那些使用网页爬行软件( 又叫网络蜘蛛程序) ,按照一定的策略将w e b 文档采集到 本地数据库,然后对这些网页进行自动分析整理并建立索引数据库,进而对用户 提出的检索请求在索引数据库中进行搜索,找出匹配的文档或者链接,返回给用 户的网络软件。 搜索引擎一般由网络蜘蛛程序、索引数据库和用户查询接1 :3 - - 部分组成【1 7 1 , 工作流程如图2 1 所示,包括网页信息的发现与搜集过程;对信息进行提取和整 理,建立索引库的过程和用户检索过程。 图2 1 搜索引擎工作流程 f i g2 - 1s e a r c he n g i n ew o r k f l o w ( 1 ) 从互联网上发现、搜集网页信息 需要有高性能的“网络蜘蛛 去自动地在互联网中搜索信息。一个典型的网 络蜘蛛工作的方式,是查看一个页面,并从中找到相关信息,然后它再从该页面 的所有链接出发,继续寻找相关的信息,以此类推,直至穷尽。在算法上各个搜 索引擎技术公司可能不尽相同,但目的都是快速浏览w e b 网页和后续过程相配合。 一7 一 安徽理工大学硕士学位论文 ( 2 ) 建立索引库 关系到用户能否最迅速地找到最准确、最广泛的信息,同样索引库的建立也 必须迅速,对网络蜘蛛抓来的网页信息极快地建立索引,保证信息的及时性。对 网页采用基于网页内容分析和基于超链分析相结合的方法进行相关度评价,能够 最大程度接近地的评估出页面的价值,客观地对网页进行排序,从而极大限度地 保证搜索出的结果与用户的查询相一致。 ( 3 ) 用户检索过程 由检索器根据用户输入的查询关键字,经过切分词后,在索引库中快速检出 文档,进行文档与查询关键字的相关度评价,对将要输出的结果进行排序,并将 查询结果返回给用户。用户检索过程这是对前两个过程的检验,检验该搜索引擎 能否给出最准确、最广泛和用户最想得到的信息。一些搜索引擎采用分布式系统、 多线程技术、高效的搜索算法来缩短对用户搜索请求的响应时间【1 8 】。 2 2 网络蜘蛛程序 搜索引擎之所以能够给我们提供大量的信息,首先需要它能够搜集到互联网 上存在的这些大量的信息。这就用到了网络蜘蛛程序来完成这个首要工作。或许 有些人有疑问,为何搜索引擎需要用网络蜘蛛抓取网站所有的网页,为什么不在 搜索者输入关键词后只把那些需要的结果抓取过来? 这实际上是效率问题,搜索 引擎不可能在搜索时实时去检查每个网页,而是需要把网页先抓取下来,按照关 键词建立好索引,每次搜索的结果都会直接从搜索引擎建立好索引的数据库中查 找,然后把结果返回给访问者。 2 2 1 网络蜘蛛概念 搜索引擎一直专注于提升用户的体验度,其用户体验度则反映在三个方面: 准、全、快。用专业术语讲是:查准率、查全率和搜索速度( 即搜索耗时) 1 9 】。 其中最易达到的是搜索速度,因为对于搜索耗时在1 秒以下的系统来说,访问者 很难辨别其快慢了,更何况还有网络速度的影响。因此,对搜索引擎的评价就集 中在了前两者:准、全。中文搜索引擎的“准,需要保证搜索的前几十条结果 都和搜索词十分相关,这需由“分词技术 和“排序技术 来决定:中文搜索引 擎的“全 则需保证不遗漏某些重要的结果,而且能找到最新的网页,这需要搜 索引擎有一个强大的网页收集器,一般称为“网络蜘蛛。 8 一 第2 章搜索引擎的实现原理 2 2 2 网络蜘蛛基本原理 网络蜘蛛( w e bs p i d e r ) ,又被称为网络爬虫、网络机器人、b o t 等,是一个 很形象的名字。把互联网比喻成一个蜘蛛网,那么s p i d e r 就是在网上爬来爬去的 蜘蛛。网络蜘蛛是通过网页的链接地址来寻找网页,从网站某一个页面( 通常是 首页) 开始,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链 接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有的网页都抓取 完为止。如果把整个互联网当成一个网站,那么网络蜘蛛就可以用这个原理把互 联网上所有的网页都抓取下来。网络蜘蛛实现的流程图如图2 - 2 所示。 图2 - 2 网络蜘蛛j r 作流程 f i g2 - 2w e bs p i d e rw o r k f l o w 9 安徽理工大学硕+ 学位论文 对于搜索引擎来说,要抓取互联网上所有的网页几乎是不可能的,从目前公 布的数据来看,容量最大的搜索引擎也不过是抓取了整个网页数量的百分之四十 左右。这其中的原因一方面是抓取技术的瓶颈,无法遍历所有的网页,有许多网 页无法从其它网页的链接中找到;另一个原因是存储技术和处理技术的问题,如 果按照每个页面的平均大小为2 0 k 计算( 包含图片) ,1 0 0 亿网页的容量是 i o ox2 0 0 0 g 字节,即使能够存储,下载也存在问题( 按照一台机器每秒下载2 0 k 计算,需要3 4 0 台机器不停的下载一年时间,才能把所有网页下载完毕) 。同时, 由于数据量太大,在提供搜索时也会有效率方面的影响。因此,许多搜索引擎的 网络蜘蛛只是抓取那些重要的网页,而在抓取的时候评价重要性主要的依据是某 个网页的链接深度。 在抓取网页的时候,网络蜘蛛一般有两种策略:广度优先和深度优先( 如下 图所示) 冽。广度优先是指网络蜘蛛会先抓取起始网页中链接的所有网页,然后 再选择其中的一个链接网页,继续抓取在此网页中链接的所有网页。这是最常用 的方式,因为这个方法可以让网络蜘蛛并行处理,提高其抓取速度。例如,一个 h t m l 文件中有三个超链接,选择其中之一并处理相应的h t m l 文件,然后不再选择 第一个超链接h t m l 文件中的任何超链接,而是返回并选择第二个超链接,处理相 应的h t m l 文件,再返回,选择第三个超链接并处理相应的h t m l 文件。一旦一层上 的所有超链接都己被选择过,就可以开始在刚才处理过的h t m l 文件中搜索其余的 超链接。这就保证了对浅层的首先处理。当遇到一个无穷尽的深层分支时,不会 导致陷进嗍中的深层文档出不来的情况发生。宽度优先搜索策略还有一个优点, 即它能在两个h t b t l 文件之问找到最短路径。但是如果要遍历一个指定的站点或者 深层嵌套的h t m l 文件集,用宽度优先搜索策略则需要花费比较长的时间才能到达 深层的h t m l 文件。深度优先是指网络蜘蛛会从起始页开始,一个链接一个链接跟 踪下去,处理完这条线路之后再转入下一个起始页,继续跟踪链接。这个方法有 个优点是网络蜘蛛在设计的时候比较容易。两种策略的区别,下图2 - 3 的说明会更 加明确。 1 0 第2 章搜索引擎的实现原理 广度优先遍历的抓取顺序为:深度优先遍历的抓取顺序为: a b c d e f h g i - a f ge 廿i 图2 - 3 广度优先和深度优先策略 f i g2 - 3b r e a d t h - f i r s ta n dd e p t l l f i r s ts t r a t e g y 由于不可能抓取所有的网页,有些网络蜘蛛对一些不太重要的网站,设置了 访问的层数。例如,在上图中,a 为起始网页,属于o 层,b 、c 、d 、e 、f 属于第 1 层,g 、h 属于第2 层,i 属于第3 层。如果网络蜘蛛设置的访问层数为2 的话, 网页i 是不会被访问到的。这也让有些网站上一部分网页能够在搜索引擎上搜索 到,另外一部分不能被搜索到。 相应于页面抓取的两种策略就有两种方式来构建网络蜘蛛程序:递归方式和 非递归方式。递归是一种通过调用自身来完成任务的程序设计技术,对网页爬取 来说使用递归看似非常合理,因为w e bs p i d e :执行的是重复的操作。例如考虑以 下的伪代码: v o i d r e c u r s i v e s p i d e r ( s t r i n gu r l ) d o w n l o a du r l p a r s eu r l f o re a c hu r lf o u n d c a llr e c u r siv e s p id e r ( w it hf o u n du r l ) e n df o r p r o c e s st h ep a g ej u s td o w n l o a d e d 安徽理工大学硕士学位论文 尽管看起来递归是构建s p i d e r 的合理的选择,但这种情况仅在访问的网页相对 较少时适用。因为递归的每一次执行都会将程序的相关信息压入堆栈中,网页越 多递归程序执行的次数也越多,堆栈将会变得越来越大最终系统内存会被耗尽致 使程序停止运行。在运用多线程时递归程序也不适用,因为每一个线程有它自己 独立的堆栈这样就造成了与递归程序的不兼容。 构建网络蜘蛛的第二种方式是非递归方式,这种方式使用队列存储所有u r l 和 采用广度优先的网页抓取方式。新发现的页面放在队列中等待网络蜘蛛处理。网 路蜘蛛程序使用四个队列,u r l 在被处理的不同阶段将被放在不同的队列中: ( 1 ) 等待队列:在这个队列中,u r l s 等待w e b s p i d e r 来处理。初始u r l s 和新发现的 u r l s 被加入此队列中。 ( 2 ) 运行队列:w e b s p i d e r 从等待队列中取出u r l s ,就将其放入此队列。放在此队 列中的u r l s 所指向的页面被下载,同时解析被下载页面中的h t m l 代码以发现新的 u r l s 并加入等待队列。为了防止一个u r l 被处理多次,一旦它被处理它就将被移入 错误队列或完成队列。 ( 3 ) 错误队列:页面被下载后如果发现错误,这个u r l 就将移入错误队列,w e b s p i d e r 将不再处理它。 ( 4 ) 完成队列:页面被下载后如果没有错误就被加到此队列中。在此队列中的u r l 将不会移到其它队列中。一个u r l 在某一时刻仅处于一个队列中,图2 4 是u r l 被网 络蜘蛛处理时的状态变迁图: 图2 4u r l 状态的变迁 f i g2 4u r l s 怔i t u sc h a n g e s 网络蜘蛛程序把找到的每一个u r l 都按照图2 - 4 中的流程进行处理,当无找到 的u r l 并且等待队列为空时,网页爬取的工作即告完成。 1 2 第2 章搜索引擎的实现原理 2 2 3 网络蜘蛛设计 2 2 3 1 网络蜘蛛应考虑的问题 在网页抓取的过程中,有一些相关的问题需要考虑。例如如何来决定网页的 抓取频率,如何处理不同类型的网页以及网站与网络蜘蛛之间的关系等等。 ( 1 ) 抓取周期分析 由于网站的内容经常在变化,因此网络蜘蛛也需不断的更新其抓取网页的内 容,这就需要网络蜘蛛按照一定的周期去扫描网站,查看哪些页面是需要更新的 页面,哪些页面是新增页面,哪些页面是已经过期的死链接。搜索引擎的更新周 期对搜索引擎搜索的查全率有很大影响。如果更新周期太长,则总会有一部分新 生成的网页搜索不到;周期过短,技术实现会有一定难度,而且会对带宽、服务 器的资源都有浪费。搜索引擎的网络蜘蛛并不是对所有的网站都采用同一个周期 进行更新,对于一些重要的更新量大的网站,更新的周期短,如有些新闻网站, 几个小时就更新一次;相反对于一些不重要的网站,更新的周期就长,可能一两 个月才更新一次。一般来说,网络蜘蛛在更新网站内容的时候,不用把网站网页 重新抓取一遍,对于大部分的网页,只需要判断网页的属性( 主要是同期) ,把得 到的属性和上次抓取的属性相比较,如果一样则不用更新。 ( 2 ) 对抓取内容分析 搜索引擎建立网页索引,处理的对象是文本文件。对于网络蜘蛛来说,爬取 下来的网页包括各种格式,包括h t m l 、图片、d o c ( m s w o r d 文档) 、p d f ( a d o b e p o r t a b l ed o c u m e n tf o r m a t ) 、多媒体、动态网页及其它格式等。这些文件抓取下 来后,需要把这些文件中的文本信息提取出来。准确提取这些文档的信息,一方 面对搜索引擎的搜索准确性有重要作用,另一方面对于网络蜘蛛正确跟踪其它链 接有一定影响。 对于d o c 、p d f 等文档,这种由专业厂商提供的软件生成的文档,厂商都会提 供相应的文本提取接口【2 。网络蜘蛛只需要调用这些插件的接口,就可以轻松的 提取文档中的文本信息和文件其它相关的信息。 h t m l 等文档不一样,h t m l 有一套自己的语法,通过不同的命令标识符来表示 不同的字体、颜色、位置等版式。提取文本信息时需要把这些标识符都过滤掉。 这些标识符都有一定的规则,只要按照不同的标识符取得相应的信息即可。但在 识别这些信息的时候,需要同步记录许多版式信息,例如文字的字体大小、是否 是标题、是否是加粗显示、是否是页面的关键词等,这些信息有助于计算单词在 1 3 安徽理工人学硕士学位论文 网页中的重要程度。同时,对于h t m l 网页来说,除了标题和正文以外,会有许多 广告链接以及公共的频道链接,这些链接和文本正文一点关系也没有,在提取网 页内容的时候,也需要过滤这些无用的链接。过滤这些无效链接需要统计大量的 网页结构规律,抽取一些共性,统一过滤:对于一些重要而结果特殊的网站,还需 要个别处理。这就需要网络蜘蛛的设计有一定的扩展性。 对于多媒体、图片等文件,一般是通过链接的锚文本( 即链接文本) 和相关的 文件注释来判断这些文件的内容。例如有一个链接文字为“十七大会议照片 ,其 链接指向一张j p g 格式的图片,那么网络蜘蛛就知道这张图片的内容是有关十七大 会议的照片。这样,在搜索“十七大会议 和“照片 的时候都能让搜索引擎找 到这张图片。另外,许多多媒体文件中有文件属性,考虑这些属性也可以更好的 了解文件的内容。 动态网页一直是网络蜘蛛面临的难题。所谓动态网页,是相对于静态网页而 言,是由程序自动生成的页面,这样的好处是可以快速统一更改网页风格,也可 以减少网页所占服务器的空间,但同样也给网络蜘蛛的爬取带来一些麻烦。由于 开发语言不断的增多,动态网页的类型也越来越多,如:a s p ( a c t i v es e r v e rp a g e ) 、 j s p ( j a v as e r v e rp a g e s ) 、p h p ( h y p e r t e x tp r e p r o c e s s o r ) 等。这些类型的网页 对于网络蜘蛛来说,可能还稍微容易一些。网络蜘蛛更难于处理的是一些脚本语 言( 如v b s c r i p t 和j a v a s c r i p t ) 生成的网页,如果要完善的处理好这些网页,网络 蜘蛛需要有自己的脚本语言解释程序。对于许多数据是放在数据库的网站,需要 通过本网站的数据库搜索才能获得信息,这些也给网络蜘蛛的爬取带来很大的困 难。对于这类网站,如果网站设计者希望这些数据能被搜索引擎搜索,则需要提 供一种可以遍历整个数据库内容的方法。 ( 3 ) 应遵守的协议 网络蜘蛛需要爬取网页,不同于一般的访问,如果控制不好,则会引起网站 服务器负担过重。有多种方法可以让网站和网络蜘蛛进行交流。一方面让网站管 理员了解网络蜘蛛都来自哪儿,做了些什么,另一方面也告诉网络蜘蛛哪些网页 不应该抓取,哪些网页应该更新。每个网络蜘蛛都有自己的名字,在抓取网页的 时候,都会向网站标明自己的身份。网络蜘蛛在抓取网页的时候会发送一个请求, 这个请求中就有一个字段为u s e r a g e n t ,用于标识此网络蜘蛛的身份。例如g o o g l e 网络蜘蛛的标识为g o o g l e b o t s ,b a i d u 网络蜘蛛的标识为b a i d u s p i d e r ,y a h o o 网络 蜘蛛的标识为i n k t o m is l u r p 。如果在网站上有访问同志记录,网站管理员就能知 道,哪些搜索引擎的网络蜘蛛过来过,什么时候过来的,以及读了多少数据等等。 1 4 第2 章搜索引擎的实现原理 如果网站管理员发现某个蜘蛛有问题,就通过其标识来和其所有者联系。 为了限制网络蜘蛛在网站内的访问范围。一般网站都采用了一个网络机器人 排斥机制( as t a n d a r df o rr o b o t se x c l u s i o n ) 束完成这方面的工作1 2 2 。网络蜘蛛 进入一个网站,一般会访问一个特殊的文本文件r o b o t st x t ,这个文件一般存储 在w e b 站点的根目录下,如:h t t p :孵_ m i c r o s o f t c o r o b o t st x t 。如图2 5 所 示。网站管理员可以通过r o b o t s t x t 来定义哪些目录网络蜘蛛不能访问,或者哪 些目录对于某些特定的网络蜘蛛不能访问。例如有些网站的可执行文件目录和临 时文件目录不希望被搜索引擎搜索到,那么网站管理员就可以把这些目录定义为 拒绝访问目录。所以当r o b o t 访问一个w e b 站点时,应该首先检查该站点的 r o b o t s t x t 文件。如果这个文件存在,它便会按照这样的纪录格式去分析: 蕻t 匾面而焉忑篇忑忑忑- 一 文件口) 蝙揖口) 查看)收藏宪工具仃) 帮助 医萎篙薹篓蓦i 。一 惟篓蓦i ;= 薹薹譬篓一。一” 旧芝要j 薹蠹冀麓黧。;a 安徽理工人学硕十学位论文 如果该站的r o b o t s t x t 文件禁止r o b o t 访问,则r o b o t 将不对该站点进行处理。 除此之外,r o b o te m t at a g 允许h t m l 网页作者指出某一页是否可以被索引, 或是否可以用来查找更多的链接文件。该m e t at a g 放在h t m l 文件的h e a d 中。其格 式如下: r o b o te m t at a g 指令使用逗号隔开,可以使用的指令包括在i n d e x n o i n d e x 和 f o l
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 创业计划书写作指南
- 产后抑郁的团体心理动力学治疗
- 初中数学统计与概率专题训练50题含答案
- 互联网医院患者健康管理成本策略-1
- 初一年级下册册政治教学设计范文
- 有志者事竟成议论文范文
- 主动脉瓣狭窄分子病理机制研究
- 桂林理工2025 年会计专业学位硕士研究生培养方案
- 论文格式排版
- 供应链体系中采购管理的作用及影响分析
- Module7Unit1Hisdogcanhelphim(课件)(一起)英语五年级上册
- 外墙打磨合同协议书(2篇)
- 椭圆的定义 课件-2024-2025学年高二上学期数学北师大版(2019)选择性必修第一册
- 用探究式化学实验支持学生证据推理能力发展
- 接收预备党员表决票(样式)
- 特立帕肽治疗骨质疏松性骨折中国专家共识(2024版)解读
- 工程伦理课后习题答案(打印版)
- 数控车床点检保养记录表(部位示意图)
- 物理化学实验B智慧树知到期末考试答案章节答案2024年北京科技大学
- 赤城县青羊碎石厂矿山地质环境保护与土地复垦方案
- 2024年宁波永耀供电服务有限公司招聘笔试参考题库附带答案详解
评论
0/150
提交评论