搜索引擎实例讲解.ppt_第1页
搜索引擎实例讲解.ppt_第2页
搜索引擎实例讲解.ppt_第3页
搜索引擎实例讲解.ppt_第4页
搜索引擎实例讲解.ppt_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

搜索引擎,Heritrix介绍,在一个搜索引擎的开发过程中,使用一个合适的爬虫来获得所需要的网页信息是第一步,这一步是整个系统成功的基础。Heritrix是一个纯由Java开发的、开源的Web网络爬虫,用户可以使用它从网络上抓取想要的资源。它来自于。Heritrix最出色之处在于它的可扩展性,开发者可以扩展它的各个组件,来实现自己的抓取逻辑。,Java开源Web爬虫1,HeritrixHeritrix是一个开源,可扩展的web爬虫项目。Heritrix设计成严格按照robots.txt文件的排除指示和METArobots标签。WebSPHINXWebSPHINX是一个Java类包和Web爬虫的交互式开发环境。Web爬虫(也叫作机器人或蜘蛛)是可以自动浏览与处理Web页面的程序。WebSPHINX由两部分组成:爬虫工作平台和WebSPHINX类包。WebLechWebLech是一个功能强大的Web站点下载与镜像工具。它支持按功能需求来下载web站点并能够尽可能模仿标准Web浏览器的行为。WebLech有一个功能控制台并采用多线程操作。AraleArale主要为个人使用而设计,而没有像其它爬虫一样是关注于页面索引。Arale能够下载整个web站点或来自web站点的某些资源。Arale还能够把动态页面映射成静态页面。J-SpiderJ-Spider:是一个完全可配置和定制的WebSpider引擎.你可以利用它来检查网站的错误(内在的服务器错误等),网站内外部链接检查,分析网站的结构(可创建一个网站地图),下载整个Web站点,你还可以写一个JSpider插件来扩展你所需要的功能。spindlespindle是一个构建在Lucene工具包之上的Web索引/搜索工具.它包括一个用于创建索引的HTTPspider和一个用于搜索这些索引的搜索类。spindle项目提供了一组JSP标签库使得那些基于JSP的站点不需要开发任何Java类就能够增加搜索功能。,Java开源Web爬虫2,ArachnidArachnid:是一个基于Java的webspider框架.它包含一个简单的HTML剖析器能够分析包含HTML内容的输入流.通过实现Arachnid的子类就能够开发一个简单的Webspiders并能够在Web站上的每个页面被解析之后增加几行代码调用。Arachnid的下载包中包含两个spider应用程序例子用于演示如何使用该框架LARMLARM能够为JakartaLucene搜索引擎框架的用户提供一个纯Java的搜索解决方案。它包含能够为文件,数据库表格建立索引的方法和为Web站点建索引的爬虫。JoBoJoBo是一个用于下载整个Web站点的简单工具。它本质是一个WebSpider。与其它下载工具相比较它的主要优势是能够自动填充form(如:自动登录)和使用cookies来处理session。JoBo还有灵活的下载规则(如:通过网页的URL,大小,MIME类型等)来限制下载。snoics-reptilesnoics-reptile是用纯Java开发的,用来进行网站镜像抓取的工具,可以使用配制文件中提供的URL入口,把这个网站所有的能用浏览器通过GET的方式获取到的资源全部抓取到本地,包括网页和各种类型的文件,如:图片、flash、mp3、zip、rar、exe等文件。可以将整个网站完整地下传至硬盘内,并能保持原有的网站结构精确不变。只需要把抓取下来的网站放到web服务器(如:Apache)中,就可以实现完整的网站镜像。Web-HarvestWeb-Harvest是一个Java开源Web数据抽取工具。它能够收集指定的Web页面并从这些页面中提取有用的数据。Web-Harvest主要是运用了像XSLT,XQuery,正则表达式等这些技术来实现对text/xml的操作。,Heritrix&Nutch,二者均为Java开源框架,Heritrix是SourceForge上的开源产品,Nutch为Apache的一个子项目,它们都称作网络爬虫/蜘蛛(WebCrawler),它们实现的原理基本一致:深度遍历网站的资源,将这些资源抓取到本地,使用的方法都是分析网站每一个有效的URI,并提交Http请求,从而获得相应结果,生成本地文件及相应的日志信息等。Heritrix是个archivalcrawler-用来获取完整的、精确的、站点内容的深度复制。包括获取图像以及其他非文本内容。抓取并存储相关的内容。对内容来者不拒,不对页面进行内容上的修改。重新爬行对相同的URL不针对先前的进行替换。爬虫通过Web用户界面启动、监控、调整,允许弹性的定义要获取的URL。二者的差异:Nutch只获取并保存可索引的内容。Heritrix则是照单全收。力求保存页面原貌Nutch可以修剪内容,或者对内容格式进行转换。Nutch保存内容为数据库优化格式便于以后索引;刷新替换旧的内容。而Heritrix是添加(追加)新的内容。Nutch从命令行运行、控制。Heritrix有Web控制管理界面。Nutch的定制能力不够强,不过现在已经有了一定改进。Heritrix可控制的参数更多。,Heritrix工作原理,Heritrix是一个爬虫框架,可加如入一些可互换的组件。它的执行是递归进行的,主要有以下几步:在预定的URI中选择一个。获取URI分析,归档结果选择已经发现的感兴趣的URI。加入预定队列。标记已经处理过的URI,处理器链,预取链主要是做一些准备工作,例如,对处理进行延迟和重新处理,否决随後的操作。提取链主要是获得资源,进行DNS转换,填写请求和响应表单抽取链当提取完成时,抽取感兴趣的HTML,JavaScript,通常那里有新的也适合的URI,此时URI仅仅被发现,不会被评估写链存储爬行结果,返回内容和抽取特性,过滤完存储。提交链做最後的维护,例如,测试那些不在范围内的,提交给边界部件,安装,Heritrix所用到的工具类库都存于lib下heritrix-1.12.1.jar是Heritrix的Jar包。在Heritrix目录下有一个conf目录,其中包含了一个很重要的文件:perties。在perties中配置了大量与Heritrix运行息息相关的参数,这些参数主要是配置了Heritrix运行时的一些默认工具类、WebUI的启动参数,以及Heritrix的日志格式等。当第一次运行Heritrix时,只需要修改该文件,为其加入WebUI的登录名和密码,如图10-2所示。,启动方式,Heritrix有多种方式启动,例如,可以使用CrawlController,以后台方式加载一个抓取任务,即为编程式启动。不过最常见的还是以WebUI的方式启动它。,4种创建任务的方式,Basedonexistingjob:以一个已经有的抓取任务为模板,创建所有抓取属性和抓取起始URL的列表。Basedonarecovery:在以前的某个任务中,可能设置过一些状态点,新的任务将从这个设置的状态点开始。Basedonaprofile:专门为不同的任务设置了一些模板,新建的任务将按照模板来生成。Withdefaults:这个最简单,表示按默认的配置来生成一个任务。,order.xml,在Heritrix中,一个任务对应一个描述文件。这个描述文件的默认的名称为order.xml。每次创建一个新任务时,都相当于生成了一个order.xml的文件。文件中详细记录了Heritrix在运行时需要的所有信息。例如,它包括该用户所选择的Processor类、Frontier类、Fetcher类、抓取时线程的最大数量、连接超时的最大等待时间等信息。上面所说的4种创建抓取任务的方式,其实都是在生成一个order.xml文件。关于order.xml的细节,不必深究。因为它里面所有的内容,都会在WebUI上看到。,Modules,CrawlScope用于配置当前应该在什么范围内抓取网页链接。比如,如果选择BroadScope,则表示当前抓取的范围不受限制,但如果选择了HostScope,则表示抓取的范围在当前的Host内Frontier则是一个URL的处理器,它将决定下一个被处理的URL是什么。同时,它还会将经由处理器链所解析出来的URL加入到等待处理的队列中去。PreProcessor:这个队列中,所有的处理器都是用来对抓取时的一些先决条件做判断的。比如判断robot.txt的信息等,它是整个处理器链的入口。Fetcher:从名称上看,它用于解析网络传输协议,比如解析DNS、HTTP或FTP等。Extractor:它的名字就很好的揭示了它的作用。它主要用是于解析当前获取到的服务器返回内容,这些内容通常是以字符串形式缓存的。在这个队列中,包括了一系列的工具,如解析HTML、CSS等。在解析完毕,取出页面中的URL后,将它们放入队列中,等待下次继续抓取。Writer:主要是用于将所抓取到的信息写入磁盘。通常写入磁盘时有两种形式,一种是采用压缩的方式写入,在这里被称为Arc方式,另一种则采用镜象方式写入。当然处理起来,镜象方式要更为容易一些,PostProcessor:在整个抓取解析过程结束后,进行一些扫尾的工作,比如将前面Extractor解析出来的URL有条件的加入到待处理队列中去。,settings,max-toe-threads该参数的含义很容易了解,它表示Heritrix在运行该抓取任务时,为任务分配多少个线程进行同步抓取。而事实上在机器配置和网络均很好的情况下,设置50个线程数就已经足够使用了。HTTP-Header在HTTP-Header这个属性域下面,包括两个属性值“user-agent”和“from”。“VERSION”字符串需要被替换成Heritrix的版本信息。“PROJECT_URL_HERE”可以被替换成任何一个完整的URL地址。“from”属性中不需要设置真实的E-mail地址,只需是格式正确的邮件地址就可以了。,-Xmx512m,使用Heritrix时,考虑到内存的影响,可为其分配512M的最大HeapSize,可以增大Heritrix的最大可用内存,-Xmx512m-Xmsseti

温馨提示

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

评论

0/150

提交评论