(计算机应用技术专业论文)面向汽车主题的垂直搜索引擎研究与实现.pdf_第1页
(计算机应用技术专业论文)面向汽车主题的垂直搜索引擎研究与实现.pdf_第2页
(计算机应用技术专业论文)面向汽车主题的垂直搜索引擎研究与实现.pdf_第3页
(计算机应用技术专业论文)面向汽车主题的垂直搜索引擎研究与实现.pdf_第4页
(计算机应用技术专业论文)面向汽车主题的垂直搜索引擎研究与实现.pdf_第5页
已阅读5页,还剩81页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

西南交通大学硕士研究生学位论文第l 页 摘要 互联网已经成为一个巨大的海量信息空间,人们在互联网上搜索信息主要利用百度 等通用搜索引擎,这类搜索引擎功能已经十分强大,基本可以满足用户的需求,但是当 用户搜索一些面向主题的信息时,这类搜索引擎往往显得力不从心。垂直搜索引擎的出 现,正是为了解决此类问题。 本文首先介绍了垂直搜索引擎的特点及工作原理,然后详细分析了开源网络爬虫 h e r i t r i x 的系统结构。在此基础上,提出了设计特定的解析器,解析特定网站,以及扩展 h e r i t r i x 的链接处理器,抓取特定链接,来实现定制抓取的目的;然后通过消除r o b o t s t x t 对个别处理器的影响,以及引入哈希算法,实现了高效、多线程抓取的目的。 本文采用l u c e n e 作为全文检索引擎,首先深入剖析了l u c e n e 的系统结构,并详细 阐述了l u c e n e 的倒排索引技术和索引结构,然后通过分析l u c e n e 原有排序算法,得知 其只考虑网页内容本身,不能反映出网页的重要性的不足,通过引入基于链接分析的 p a g e r a n k 算法,改进了l u c e n e 原有排序算法,排序结果更加符合用户预期。 本文在上述研究的基础上,根据汽车爱好者查询汽车信息的一般要求,建立了一个 面向汽车主题的垂直搜索引擎,设计了各个子系统,并实现了改进的爬虫和排序算法。 最后,本文在建立的垂直搜索引擎系统上,首先通过查询实验,验证了垂直搜索引 擎相对通用搜索引擎的直观优势,然后通过对改进前后的爬虫抓取网页速度对比,以及 对改进后爬虫在不同线程数、不同运行时间的条件下抓取网页速度的分析,验证了改进 后的爬虫性能有了较明显的提高,最后通过对比排序算法改进前后的排序结果,验证了 改进后的排序算法在符合用户预期查询结果方面,得到了较好的改善。 关键词:垂直搜索引擎、网络爬虫、l u c e n e 、p a g e r a n k 西南交通大学硕士研究生学位论文第页 a b s t r a c t i n t e m e th a sb e e nas p a c ew i t hh u g ei n f o r m a t i o n p e o p l em a i n l yu s eg e n e r a ls e a r c he n g i n e s u c ha sb a i d ut os e a r c hi n f o r m a t i o ni nt h ei n t e m e t , a l t h o u g ht h i sk i n do fs e a r c he n g i n ei s s t r o n ge n o u g ht om e e tp e o p l e sb a s i cr e q u i r e m e n t ,i td o e s n th a v et h eg o o da b i l i t yo fp r o v i d i n g t h ei n f o r m a t i o no r i e n t e do ns u b je c tf o rs e a r c he n g i n eu s e r s t h ea p p e a r a n c eo fv e r t i c a ls e a r c h e n g i n eh a sb e e np u tf o r w a r dt os o l v et h i sk i n do fp r o b l e m ,n l i sa r t i c l ef i r s t l yi n t r o d u c e st h ef e a t u r eo fv e r t i c a ls e a r c he n g i n e ,a n di t sw o r kp r i n c i p l e , t h e ni td e e p l ya n a l y z e st h es y s t e mc o n s t r u c t u r eo fo d e ns o u r c ew e bc r a w l e rc a l l e dh e r i t r i x b a s i n go nt h ea b o v ea n a l y s i s ,t h i sa r t i c l ep u t sf o r w a r dt od e s i g ns p e c i f i ce x t r a c t o rt oe x t r a c t s p e c i f i cw e b s i t ea n de x p a n dt h el i n kp r o c e s s o ro fh e r i t r i xt oc r a w ls p e c i f i cl i n k s s oa st o r e a l i z et h ec u s t o m i z e dc r a w l ;t h e ni tp u t sf o r w a r dt oe l i m i n a t et h ee f f e c tw h i c hr o b o t s t x th a s m a d et os o m ep r o c e s s o r sa n da d dh a s ha l g o r i t h m s oa st or e a l i z et h ec r a w lw i 吐ll l i g he f f i c i e c y t h i sa r t i c l eu s e sl u c e n ea st h ef u l l t e x ts e a r c he n g i n e ,缸f i r s t l ya n a l y z e st h es y s t e m c o n s t m c t u r eo fl u c e n e ,a n df u l l ye x p o u n d st h er e v e r s ei n d e xa n di n d e xs t r u c t u r eo fl u c e n e t h e ni tl e a d su st ok n o wt h a tt h el u c e n eo r i g i n a ls e q u e n c ea l g o r i t h mj u s tt h i n k sa b o u tt h e c o n t e n to f w e bp a g e s ,w h i c hc a n n o ti n d i c a t et h ei m p o r t a n c eo f w e bp a g e s ,s oi ta d d sp a g e r a n k a l g o r i t h mw h i c hi sb a s e do nt h el i n ka n a l y s i s ,w h i c hh a si m p r o v e dt h eo r g i n a ls e q u e n c e a l g o r i t h mo fl u c e n e ,b e c a u s eo ft h ei m p r o v e m e n t , t h es e q u e n c er e s u l ts a t i s f yt h es e a r c he n g i n e u s e r se x p e c t a t i o n b a s i n go nt h ea b o v e r e s e a r c hr e s u l t sa n da c c o r d i n gt oc a rf a n s o r d i n a r yr e q u i r e m e n tw h e n m e ys e a r c hf o rc a ri n f o r m a t i o n ,t h i sa r t i c l ee s t a b l i s h e sa l lv e r t i c l es e a r c he n g i n eo r i e n t e do nc a r s u b j e c t i td e s i g n se a c hs u b s y s t e m ,a n dr e a l i z e st h ei m p r o v e dc r a w l e ra n ds e q u e n c ea l g o r i t h m f i n a l l y ,b a s i n go nt h ee s t a b l i s h e dv e r t i c a ls e a r c he n g i n es y s t e m ,t h i sa r t i c l em a k e ss o m e t e s t s f i r s to fa 1 1 t h r o u g ht h es e a r c ht e s t , i th a sv e r i f i e dt h ed i r e c ta d v a n t a g eo fv e r t i c a ls e a r c h e n g i n eo v e rg e n e r a ls e a r c he n g i n e t h e nt h r o u g ht h ec o n t r a s tb e t w e e nt h eo r i g i n a lc r a w l e ra n d t h ei m p r o v e dc r a w l e ri nt h ec r a w ls p e e d , a n da n a l y s i so ft h ec r a w ls p e e do ft h ei m p r o v e d c r a w l e ri nd i f f e r e n ta m o u n t so ft h r e a d sa n di nd i f f e r e n tr u n n i n gt i m e ,i th a sv e r i f i e dt h e i m p r o v e dc r a w l e rh a sb e t t e re f f i c i e c y a tl a s t ,t h r o u g ht h ec o n s t r a s to fs e q u e n c er e s u l tb e t w e e n t h eo r i g n a ls e q u e n c ea l g o r i t h ma n dt h ei m p r o v e ds e q u e n c ea l g o r i t h m ,i th a sv e r i f i e dt h e i m p r o v e ds e q u e n c ea l g o r i t h mh a sm a d eb e t t e rp r o g r e s si nt h ea s p e c to fs a t i 研n gt h es e a r c h e n g i n eu s e r se x p e c t a t i o n 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 bc r a w l e r , l u c e n e ,p a g e r a n k 西南交通大学 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留 并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本 人授权西南交通大学可以将本论文的全部或部分内容编入有关数据库进行检索,可 以采用影印、缩印或扫描等复印手段保存和汇编本学位论文。 本学位论文属于 1 保密口,在年解密后适用本授权书; 2 不保盔使用本授权书。 ( 请在以上方框内打”) 学位论文作者签名: 日期:之o l o 6 1 3 老捅 ,上等专6 雀j 名 酶 沙 师老 : 导 期 指 日 西南交通大学硕士学位论文主要工作( 贡献) 声明 本人在学位论文中所做的主要工作或贡献如下: 第一,针对原有h e r i t r i x 不能定制爬取特定内容,单线程爬取的缺点,从四个方面对 h e r i t r i x 进行扩展和改进,实现了高效、多线程抓取的目的。 第二,针对l u c e n e 原有排序算法,只考虑网页内容本身,不能反映出网页的重要性 的不足,通过引入基于链接分析的p a g e r a n k 算法,改进了l u c e n e 原有排序算法,排序 结果更加符合用户预期。 第三,根据汽车爱好者查询汽车信息的一般要求,建立了一个面向汽车主题的垂直 搜索引擎,设计了各个子系统,并实现了改进的爬虫和排序算法。 最后,本文在建立的垂直搜索引擎系统上,首先通过查询实验,验证了垂直搜索引 擎相对通用搜索引擎的直观优势,然后通过对改进前后的爬虫爬取速度对比,以及对改 进后爬虫在不同线程数、不同运行时间的条件下爬取速度的分析,验证了改进后的爬虫 性能有了较明显的提高,最后通过对比排序算法改进前后的排序结果,验证了改进后的 排序算法在符合用户预期查询结果方面,得到了较好的改善。 本人郑重声明:所呈交的学位论文,是在导师指导下独立进行研究工作所得的成果。 除文中已经注明引用的内容外,本论文不包含任何其他个人或集体己经发表或撰写过的 研究成果。对本文的研究做出贡献的个人和集体,均已在文中作了明确说明。本人完全 了解违反上述声明所引起的一切法律责任将由本人承担。 学位论文作者签名: 日期: 五h 6 。f 3 西南交通大学硕士研究生学位论文第1 页 iii|himii_ i i i i i i i i i i i i 1 1 研究背景 第1 章绪论 w w w ( w o r l d w i d e w e b 万维网) 是全球性的网络信息系统,在最近十几年里,w w w 得到了长足的发展,不但成为企业必不可少的组成部分,而且早已走进千家万户。根据 中国互联网络信息中一t 二, ( c n n i c ) 2 0 0 9 年1 月1 5 日发布的中国互联网络发展状况统计 报告【l 】,截至2 0 0 9 年1 2 月3 0 日,我国网民人数达到了3 8 4 亿,网民规模居世界第 一位,较2 0 0 8 年底年增长8 6 0 0 万人,年增长率为2 8 9 ,其中宽带上网网民人数为3 4 6 亿人,较2 0 0 8 年增长7 6 0 0 万,在所有网民中的比例为9 0 1 。农村网民规模达到1 0 6 8 1 万,占整体网民的2 7 8 ,同比增长2 6 3 。2 0 0 9 年网络应用使用率排名前三甲分别是 网络音乐( 8 3 5 ) ,网络新闻( 8 0 1 ) ,搜索引擎( 7 3 3 ) 。 随着网络覆盖范围的不断扩大,w e b 信息爆炸性的增长,互联网已经成为一个巨大 的海量信息空间。搜索引擎为人们在具有海量信息的互联网上查找信息资源提供了方便。 但是,随着信息多元化的发生和用户对搜索引擎提出的个性需求,面向所有用户的通用 搜索引擎【2 】己经不能满足特定用户的更深入、快速、及时的查询需求。g o o g l e 、百度等 通用搜索引擎,虽然能够帮助人们从海量的网络信息海洋中找到许多有用的信息,但这 些信息往往是涉及各行各业,杂糅在一起。很多时候还需要在搜索出来的结果页面上不 断地翻页,反复绞尽脑汁变换关键词才能找到想要的信息,这给人们搜索、查询信息带 来很大的不便【3 。用户迫切需要一个数据分类细致、准确、全面、更新及时的专业的搜 索引擎来获取专业资源信息。 针对某一领域、某一特定人群或某一特定需求建立的搜索引擎处于酝酿之中,即垂 直搜索引擎,这样一来,垂直主题的搜索引擎以其高度的目标化和专业化在各类搜索引 擎中占据了一系席之地,比如象股票、天气、新闻等类的搜索引擎,具有很高的针对性, 用户对查询结果的满意度较高。垂直搜索引擎有着极大的发展空间。据赛迪网的“国内 搜索引擎市场调查报告”显示,9 2 的网民认为将来非常可能或可能使用垂直搜索引擎 【4 】。 1 2 搜索引擎的发展历史 了解搜索引擎的发展历史5 1 ,对于把握搜索引擎的技术发展趋势很有帮助。按照搜 索引擎对网页索引技术的不同,搜索引擎系统可以分为四代搜索引擎6 】m 。 ( 1 ) 第1 代搜索引擎 第1 代搜索引擎是目录式分类搜索引擎,代表系统是1 9 9 4 年出现的y a h o o 搜索引擎。 早期阶段的搜索引擎收录的网页资源总量较少,爬虫技术尚不成熟,它是依靠专家人工 西南交通大学硕士研究生学位论文第2 页 i i i i i i i i i i i i i i i i i i i i i i 宣i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i 宣i i i i i i i i i i i i i i i i i t r i 精选出网络目录中的网页,将信息进行系统地归类,利用传统的信息分类方式来组织信 息,用户按类别查找信息。目录式分类搜索引擎由于网络目录中的网页是专家人工精选 得来,故有较高的查准率,但查全率较低,搜索范围较窄,检索时间也较长。这一代存 在的时间比较短,很快就出现了第2 代搜索引擎。 ( 2 ) 第2 代搜索引擎 第2 代搜索引擎是全文搜索引擎,出现在1 9 9 8 年到2 0 0 0 年期间,代表系统是1 9 9 8 年出现的g o o g l e 搜索引擎弘j 。此时互联网已经进入快速发展的新阶段,网页数量激增, 爬虫技术也有很大提高。它依靠机器人程序抓取网页,能够对网站的每个网页中的每个 单字进行索引,通过以网页超链分析为基础的p a g e r a n k 算法【9 】,来完成网页权重的表示 和检索结果网页相关度的排序,故有查全率高,查准率低的特点。这类技术在国内的 b a i d u 等中文搜索引擎中也得到广泛应用。全文搜索引擎搜索范围较广,提供的信息多 而全,但查询结果不准确,深度不够。 ( 3 ) 第3 代搜索引擎 第3 代搜索引擎是个性化搜索引擎,个性化搜索引擎积极采用w e b 数据挖掘技术, 提高了爬虫技术和信息处理的能力。能够通过分析用户的爱好和网站的特征,以用户为 中心,提供更加精准的搜索结果。g o o g l e 已经推出了个性化主页的服务,在主页中不断 增添着小插件、小按钮等工具,不断地完善着搜索的易用性和个性化。然而,能够真正 理解用户的意图,达到用户个性化搜索需求也成为个性化搜索引擎发展的重要环节。 ( 4 ) 第4 代搜索引擎 前3 代搜索引擎都称为通用搜索引擎,也叫做水平搜索引擎。第4 代搜索引擎是垂 直搜索引擎【1 们,进入2 1 世纪后,垂直搜索引擎成为搜索引擎发展史上的一块里程碑。 垂直搜索引擎是针对某一个行业的专业搜索引擎,也称专业搜索引擎或主题搜索引擎等, 是搜索引擎的细分和延伸。它对网页库中的某类专门的信息进行一次整合,定向分字段 抽取出需要的数据进行处理后再以某种形式返回给用户。其特点就是“专、精、深”,且 具有行业色彩,相比较通用搜索引擎的海量信息无序化,垂直搜索引擎则显得更加专注、 具体和深入。目前常见的垂直搜索研究包括面向学术资源、面向娱乐和生活的等等。 1 3 垂直搜索引擎的特点 通用搜索引擎的出现很大程度上解决了人们在互联网上查找信息的困难,但由于其 覆盖一切、追求满足所有用户需求的设计目标,己经不能满足人们对个性化信息检索服 务日益增长的需要。 垂直搜索引擎】1 1 2 是相对通用搜索引擎的信息量大、查询不准确、深度不够等提出 来的新的搜索引擎服务模式,通过针对某一特定领域、某一特定人群或某一特定需求, 提供有一定价值的信息和相关服务【l3 1 。它有很多优点: ( 1 ) 提供的信息“专、精、深”,且具有行业色彩,相比较通用搜索引擎的海量信息 西南交通大学硕士研究生学位论文第3 页 111 无序化,垂直搜索引擎则显得更加专注、具体和深入。 ( 2 ) 垂直搜索引擎抓取的数据来源于垂直搜索引擎关注的行业站点。在系统运行上比 通用搜索引擎的效率要高。 ( 3 ) 垂直搜索引擎抓取的数据倾向于结构化数据和元数据。提供的信息比较详细具 体。 ( 4 ) 垂直搜索引擎的搜索行为是基于结构化数据和元数据的结构化搜索,搜索时关键 词的选择比较容易。 然而,正因为它的这些突出优点使得它存在自己的缺点: ( 1 ) 如果要抓取特定领域的网页,则抓取时要进行判断,以找到特定的网页内容。种 子站点需要人工干预和选择,不易控制。 ( 2 ) 要对网页内容进行深入的解析、抽取和整理,实现技术难度大,不易普及推广。 ( 3 ) 信息覆盖面较为狭窄,只能提供某一个方面的信息。要构建多个主题的系统满足 需要,重复建设浪费资源。 本文将针对上述垂直搜索引擎的第一和第二个缺点,尝试着通过结合开源代码来构 建一个面向汽车产品信息的垂直搜索引擎系统,从代码的开放性和良好的扩展性方面入 手,来揭示垂直搜索引擎用到的关键技术和一种低成本的实现方法,以期推动垂直搜索 引擎应用的普及推广。 1 4 垂直搜索引擎国内外研究现状 在国外对于垂直搜索领域的研究开始较早,2 0 0 0 年以后,对第四代搜索引擎的研究 拉开了序幕,出现了利用垂直搜索引擎搜索的结果再经过专业人士的加工而形成的面向 某一学科领域的垂直门户网站。下面介绍一些具有代表性的系统。 ( 1 ) l i b c l i e n t i r i s w e b 1 4 】该系统于2 0 0 0 年1 月由n o r t hc a r o l i n a 大学计算机科学系和 法学院联合开发研制,可以用自然语言对网上的法律信息进行全文检索,使得法律专业 人士获得全面高质的法律专业信息的效率大大提高。它的搜索器( 集中性网络蜘蛛) 只 搜集特定的主题信息,按照预先已定义好的专题有选择性地收集相关的网页。这样大大 降低了收集信息的难度,提高了信息的质量:由于它收集的学科领域小,信息量相对较 少,可以采用“专家分类标引”的方法对收集到的信息进行组织整理,进一步提高信息 的质量,建立起一个高质量的、专业信息收录全、能够实时更新的索引数据库;由于专 业性搜索引擎只涉及某一个或几个领域,词汇和用语“一词( 一语) 多意”的可能性降 低,而且可以利用专业词表进行规范和控制,大大提高“查全率”和“查准率”;由于是 专业化的搜索引擎,可以聘请专家对用户的检索要求进行网上咨询和网上讲解,提高查 询语句的明确性和精度,使查询结果的“查准率 大大提高;利用信息智能代理技术, 使用自动获得的领域模型( 如w e b 知识,与用户兴趣相关的信息资源、领域的组织结 构) 、用户模型( 如用户背景、行业、兴趣、风格) 的知识进行信息搜集、索引、过滤( 包 西南交通大学硕士研究生学位论文第4 页 括兴趣过滤和不良信息过滤) ,并自动地将用户感兴趣的、对用户有用的信息提交给用户。 ( 2 ) 美国国家科学数字图书馆的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 ) ,2 0 0 2 年1 2 月 首次向公众提供利用。这个项目旨在为科学、数学、工程和技术创建大规模的在线数字 图书馆,试图研究在某一个主题上资源自动建设的可能性。c b p 的特点是:由于其只面 向教育和教学,因此主题精确度高;不存储资源原文,只提供u r l ;只需要少量输入, 系统就可以全自动将有关该主体的最相关的有限数量u r l 返回给用户。 国内在垂直搜索领域的研究起步较晚,在2 0 0 5 年之后出现了一些比较有名的垂直搜 索引擎网站: 旅游搜索代表:去哪jl ( w w w q u n a r c o m ) 论坛社区搜索代表:奇虎( w w w q i h o o c o m ) 房产搜索:搜房网( w w w s o u f i m t o m ) 快递搜索:快递查询( w w w k d c c c t o m ) 比价搜索代表:顶九( w w w d i n 9 9 c o m ) 食谱搜索代表:可口网( w w w k e k o t o m e n ) 生活搜索代表:酷讯( w w w k o o x o o o d m ) 其中,酷讯旅游搜索【l6 是一款专业的旅游搜索引擎,创立于2 0 0 6 年初,自成立伊始 就致力于利用垂直搜索技术,向用户提供机票、酒店、度假、火车票等多种旅行产品的 搜索、比较和智能筛选等服务,同时向旅游爱好者提供分享旅游感受、结交驴友等众多 互动沟通类服务。酷讯自主研发的旅游垂直搜索技术,使酷讯网能够实时搜索数以千计 的旅游网站,并且全方位的分析处理每个旅行产品数据,以帮助不同需求的用户找到经 济而完美的旅行产品。截止2 0 0 9 年9 月,酷讯网的月均访问量超过3 5 0 0 万。 1 5 论文主要研究内容 本文的主要研究内容如下: 第一,针对原有h e r i t r i x 不能定制爬取特定内容,单线程爬取的缺点,从四个方面 1 ) 设计解析特定网站的解析器e x t r a c t o r2 ) 扩展f r o n t i e r s c h e d u l e r 来抓取特定内容3 ) 消除r o b o t s t x t 对个别p r o c e s s o r 的影响4 ) 扩展q u e u e a s s i g n m e n t p o l i c y 实现多线程抓取, 对h e r i t r i x 进行扩展和改进,实现了高效、多线程抓取的目的。 第二,针对l u c e n e 原有排序算法,只考虑网页内容本身,不能反映出网页的重要性 的不足,通过引入基于链接分析的p a g e r a n k 算法,改进了l u c e n e 原有排序算法,排序 结果更加符合用户预期。 第三,根据汽车爱好者查询汽车信息的一般要求,建立了一个面向汽车主题的垂直 搜索引擎,设计了各个子系统,并实现了改进的爬虫和排序算法。 最后,本文在建立的垂直搜索引擎系统上,首先通过查询实验,验证了垂直搜索引 擎相对通用搜索引擎的直观优势,然后通过对改进前后的爬虫爬取速度对比,以及对改 西南交通大学硕士研究生学位论文第5 页 进后爬虫在不同线程数、不同运行时间的条件下爬取速度的分析,验证了改进后的爬虫 性能有了较明显的提高,最后通过对比排序算法改进前后的排序结果,验证了改进后的 排序算法在符合用户预期查询结果方面,得到了较好的改善。 1 6 论文章节安排 第一章绪论主要内容是本文的研究背景、搜索引擎的发展历史、垂直搜索引擎的 特点和国内外研究现状。 第二章相关理论与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 基础排序算法的不足,提出 了改进方法。 第四章面向汽车主题的垂直搜索引擎系统实现主要内容是用户的一般要求、总体 系统架构、爬虫子系统的设计与实现、解析子系统的设计与实现、索引子系统的设计与 实现、查询子系统的设计与实现,并对每个子系统的实现进行了演示,最后实现了改进 的排序算法。 第五章系统测试主要内容是对改进后的爬虫和排序算法进行测试。 总结与展望主要内容是总结本文研究工作,并对今后进一步的研究进行展望 西南交通大学硕士研究生学位论文第6 页 _i i ii 第2 章相关理论与h e r i t r i x 技术剖析 欲构建垂直搜索引擎,就需要对其工作原理和相关技术有所了解,接下来的两章, 就结合构建垂直搜索引擎的主要原理,来介绍构建一个垂直搜索引擎所需的关键技术。 2 1 垂直搜索引擎工作原理 搜索引擎一般由网络蜘蛛程序、索引数据库和用户查询接v l - - 部分组成 1 7 1 ,工作流 程如图2 1 所示,包括网页信息的发现与搜集过程;对信息进行提取和整理,建立索引 库的过程和用户检索过程。垂直搜索引擎工作原理示意图如图2 1 所示: 图2 1 垂直搜索引擎工作原理示意图 由于垂直搜索引擎是通用搜索引擎的细分和延伸,因此,在基本原理和工作过程方 面,与通用搜索引擎基本相同,但其专业网络爬虫的实现不同于通用搜索引擎【1 8 。网络 爬虫是一个自动提取网页的程序【l9 】【2 0 | ,它为搜索引擎从万维网w w w 上下载网页,是 搜索引擎的重要组成。传统爬虫从一个或若干初始网页的u r l 开始,获得初始网页上 的u i 也,在抓取网页的过程中,不断从当前页面上抽取新的u r l 放入队列,直到满足 系统的一定停止条件。专业爬虫的工作流程较为复杂,需要根据一定的网页分析算法过 西南交通大学硕士研究生学位论文第7 页 滤与主题无关的链接,保留有用的链接并将其放入等待抓取的u r l 队列。然后,它将 根据一定的搜索策略从队列中选择下一步要抓取的网页u r l ,并重复上述过程,直到达 到系统的某一条件时停止。另外,所有被爬虫抓取的网页将会被系统存贮,进行一定的 分析、过滤、并建立索引,以便之后的查询。 2 2h 耐仃i ) 【系统架构 2 2 1h e r i t r i x 项目简介 开源网络爬虫h c t i t r i x 2 1 1 是由互联网档案馆和北欧国家图书馆联合规范化编写于 2 0 0 3 年初。第一次正式发布是在2 0 0 4 年1 月,并不断的被互联网档案馆和其他感兴趣 的第三方改进着。h e r i t r i x 是一个由j a v a 开发的,开源的w e b 网络爬虫,用户可以使用 它从网络上抓取想要的资源。h e r i t r i x 最大的特色在于它的可扩展性,开发者可以扩展它 的各个组件,实现自己的抓取逻辑。目前已发展到1 1 4 3 版本,本文使用的是1 1 4 1 版 本。 2 2 2h e r i t r i x 系统结构 在介绍h e r i t r i x 的系统结构之前,先对其工作流程有个了解。h e r i t r i x 的工作流程是 一个循环,具体流程是: ( 1 ) 在线程池中,选择一个预定的u r l 中 ( 2 ) 从选择的切甩的网址下载远程文件 ( 3 ) 分析,归档下载到的内容,写入磁盘镜像目录 ( 4 ) 从分析到的内容里面根据策略选择u r l ,加入预定队列 ( 5 ) 标记已经处理过的u r l ( 6 ) 从第1 步继续进行,直到所有的u r l 处理结束,抓取工作结束 了解h e r i t r i x 的系统结构对于使用和定制自己的抓取任务非常必要。h e r i t r i x 系统结 构如图2 2 所示: 从图2 2 可以看出,h e r i t r i x 总体上是一个平台结构,内部的组件都具有松耦合的特 点。任何一个部分都可以进行拆卸并替换,这就给我们进行基于h e r i t r i x 的自定义开发 提供了条件。在图中,w e ba d m i n i s t r a t i v ec o n s o l e :w e b 控制台,c r a w l o r d e r :抓取任务 控制器,c r a w l c o n t r o l l e r :中央控制器,f o n f i e r :链接制造工厂,c r a w l u 刚:抓取的u , u r iw o r kq u e u e s u r i 工作队列,a l r e a h yi n c l u d e du r n s :己抓取的u p j ,p r e f e t c hc h a i n : 网络传输协议预解析链,f e t c hc h a i n :网络传输协议解析链,e x t r a t o rc h a i n :内容解析 链,w r i t e rc h a i n :内容记录器链,p o s t p r o c e s sc h a i n :结束处理器链,t o et h r e a d s :工作 线程。 西南交通大学硕士研究生学位论文第8 页 图2 2h e r i t r i x 系统结构 2 2 2 1c r a w l o r d e r 抓取任务 c r a w l o r d e r ( 抓取任务) 是整个抓取工作的起点,它记录了任务的所有属性,即在 创建任务时的一系列设置。 2 2 2 2c r a w l c o n t r o l l e r 中央控制器 c r a w l c o n t r o l l e r ( 中央控制器) 是抓取任务的核心组件,它控制着整个抓取的流程。 在构造一个c r a w l c o n t r o l l e r 实例并进行抓取任务时,有几个步骤需要完成: ( 1 ) 首先构造一个x m l s e t t i n g s h a n d l e 对象, 将o r d e r x m l 的属性信息装入 ( 2 ) 调用c r a w l c o n t r o l l e r 的构造函数,构造一个c r a w l c o n t r o l l e r 实例 ( 3 ) 调用c r a w l c o n t r o l l e r 的i n i f i a l i z e ( s e t f i n g s h a n d l e r ) 方法,初始化c r a w l c o n t r o l l e r 实 例。 西南交通大学硕士研究生学位论文第9 页 在c r a w l c o n t r o l l e r 的i n i t i a l i z e 0 方法中,主要进行了以下工作: ( 1 ) 从x m l s e t t f i n g s h a n l d e r 中取出c r a w l o r d e r ( 2 ) 检查用户设定的u s e r a g e n t 等信息 ( 3 ) 设定开始抓取后保存文件信息的目录结构 ( 4 ) 初始化日志信息的记录工具 ( 5 ) 初始化使用b e r k l e yd b 的一些工具 ( 6 ) 初始化s c o p e 、f r o n t i e r 、p r o c e s s o c c h a i n ( 7 ) 最后实例化线程池 在以上工作准备就绪之后,c r a w l c o n t r o l l e r 将启动f r o n t i e r ,以便向线程池中工作线 程提供抓取用的u r l 链接( 首先是初始设置的入口种子链接,之后是分析出来的新链接) 。 紧接着抓取线程工作开始,不断循环通过处理器链。 2 2 2 3f r o n t i e r 链接制造工厂 f r o n t i e r ( 链接制造工厂) 专门为线程提供u r l 。在通过c r a w l c o n t r o l l e r 实例化后, 将所有指定的种子链接加入处理队列,每个链接经过处理器链后会生成许多新的链接。 h e r i t r i x 提供一个高效的f r o n t i e r ,即b e r k l e yd bf r o n t i e r ,它使用b d b m u l f i p l e w o r k q u e u e s 来保存链接u r l ,使用b d b u r i u n i q f i l t e r 来判断当前要进入等待队列的链接对象是否已 经被处理过,然后将过滤出的未处理的链接对象加入待处理队列。 2 2 2 4t o e t h r e a d 工作线程 t o e t h r e a d ( t 作线程) h e r i t r i x 中每个u r l 被一个线程处理,这个线程就叫做 t o e t h r e a d 。工作线程从f r o n t i e r 中取出一个链接,携带其依次通过每个处理器链的每个 处理器,来实行一系列操作。 2 2 2 5p r o c e s s o r 处理器 p r o c e s s o r ( 处理器) 代表着单个的处理器,所有的处理器都是它的子类。它包括以 下几种:p r e p r o c e s s o r ( 预处理器) 、f e c c h e r ( 获取器) 、e x t r a c t o r ( 解析器) 、w r i t e r ( 存 储器) 、p o s t p r o c e s s o r ( 后处理器) 。 ( 1 ) p r e p r o c e s s o r 作为整个处理器链的入口,主要对抓取作一些先决判断。比如它使 用p r e c d n d i t i o n e n f o r c e r 来判断r o b o t s t x t 协议以遵循爬爬虫规范。 ( 2 ) f e t c h e r 主要用来对网络协议进行解析。比如,f e t c h d n s 用来解析d n s 协议,保 证抓取顺利进行。 ( 3 ) e x t r a c t o r 用来解析各种u r l 的返回内容,从h t m l ,j a v a s c r i p t 等不同类型信息 中分别提取新的u r l 到待处理队列中。 ( 4 ) w r i t e r 用来保存u r l 内容。比如a r c w r i t e r p r o c e s s o r 采用压缩方式保存, m i r r o r w r i t e r p r o c e s s o r 采用镜像方式保存抓取到的网页的各种镜像。本文采用镜像方式。 ( 5 ) p o s t p r o c e s s o r 主要用来进行解析过程结束时的扫尾工作。比如将e x g a c t o r 解析出 来的u r l 按照一定的规则加入到待处理队列中。 西南交通大学硕士研究生学位论文第1 0 页 i i i i i i i i i i i 宣i i i i nmtnmn i i i i i i i i i i i i i i i i i i i i i i i 2 3h e r i 仃仅的扩展与改进 h e r i t r i x 不但实现了一套高效的爬虫调度及监控程序,而且还提供了不少扩展点以便 研究人员进行二次开发。面向垂直搜索的网络爬虫,完全可以在此基础之上进行开发, 并达到事半功倍的效果。通过上一节对h e r i t r i x 的深入剖析,可以归纳出以下四大扩展 点:1 ) 设计解析特定网站的解析器e x t r a c t o r 2 ) 扩展f r o n t i e r s e h e d u l e r 来抓取特定内容3 ) 消除r o b o t s t x t 对个别p r o c e s s o r 的影响4 1 扩展q u e u e - a s s i g n m e n t p o l i c y 实现多线程抓取 2 3 1 设计解析特定网站的解析器e x t r a c t o r h e r i t r i x 内嵌的解析器e x t r a c t o r 不能很好地完成所需要的工作,这并不是它不够强 大,而是因为在解析一个网页时,常常有特定的需要。比如,人们可能只想抓取某种格 式的链接,或者只抓取某一特定格式中的文本片段。h e t i t r i x 所提供的通用e x t r a c t o r 只 能将所有信息全部抓取下来。在这种情况下,将无法控制h e r i t r i x 抓取的内容,进而造 成抓取的网页镜像信息过于复杂,不容易建立索引。 针对垂直搜索爬虫的特性,可以设计与实际垂直搜索应用相匹配的专用解析器,该 解析器应该具有以下功能: ( 1 ) 对所有不含有要抓取的结构化信息页面的u r l 、又不含有可以集中提取前者 u r l 的种子型i j l 阻,都不作处理; ( 2 ) 从可以集中提取含结构化信息页面u r l 的种子型u r l ( 如产品目录u r l ) ,提取 全部的含结构化信息页面的u r l ( 女 i 产品信息列表u r l ) ; ( 3 ) 从含结构化信息页面的u r l 提取所需的结构化信息,并加以记录。 2 3 2 扩展f r o n t i e r s c h e d u l e r 来抓取特定内容 f r o n t i e r s c h e d u l e r 是一个p o s t p r o c e s s o r ,它的作用是将e x t r a c t o r 解析得出的链接加入 到f r o n t i e r 中,以待继续处理。在f r o n t i e r s c h e d u l e r 的i n n e r p r o c e s s 方法中,首先检查当 前链接处理后的结果集合中是否有一些属于高优先级的u r l 。如果有,则立刻转走进行 处理;如果没有,则对所有的结果集合进行遍历,然后调用f r o n t i e r 中的s c h e d u l e 方法 加入队列进行处理。扩展f r o n t i e r s c h e d u l e r 就是加入一种u r l 选择策略,将那些不需要 的u r l 过滤掉,以保证抓取的信息都是所需要的。 2 3 3 消除r o b o t s t x t 对个别p r o c e s s o r 的影响 网络蜘蛛进入一个网站,一般会访问一个特殊的文本文件r o b o t s 戗t 阎,这个文件一 般放在网站服务器的根目录下:比如:h t t p :w w w p c a u t o c o m o n r o b o t s t x t 。文件中的信 息如下所示: 西南交通大学硕士研究生学位论文第1 1 页 u

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论