nutch下载

时间:2026-06-10 17:57:21编辑:莆田seo君

开源爬虫框架各有什么优缺点?

首先爬虫框架有三种分布式爬虫:NutchJAVA单机爬虫:Crawler4j,WebMagic,WebCollector非JAVA单机爬虫:scrapy第一类:分布式爬虫优点:海量URL管理网速快缺点:Nutch是为搜索引擎设计的爬虫,大多数用户是需要一个做精准数据爬取(精抽取)的爬虫。Nutch运行的一套流程里,有三分之二是为了搜索引擎而设计的。对精抽取没有太大的意义。用Nutch做数据抽取,会浪费很多的时间在不必要的计算上。而且如果你试图通过对Nutch进行二次开发,来使得它适用于精抽取的业务,基本上就要破坏Nutch的框架,把Nutch改的面目全非。Nutch依赖hadoop运行,hadoop本身会消耗很多的时间。如果集群机器数量较少,爬取速度反而不如单机爬虫。Nutch虽然有一套插件机制,而且作为亮点宣传。可以看到一些开源的Nutch插件,提供精抽取的功能。但是开发过Nutch插件的人都知道,Nutch的插件系统有多蹩脚。利用反射的机制来加载和调用插件,使得程序的编写和调试都变得异常困难,更别说在上面开发一套复杂的精抽取系统了。Nutch并没有为精抽取提供相应的插件挂载点。Nutch的插件有只有五六个挂载点,而这五六个挂载点都是为了搜索引擎服务的,并没有为精抽取提供挂载点。大多数Nutch的精抽取插件,都是挂载在“页面解析”(parser)这个挂载点的,这个挂载点其实是为了解析链接(为后续爬取提供URL),以及为搜索引擎提供一些易抽取的网页信息(网页的meta信息、text)用Nutch进行爬虫的二次开发,爬虫的编写和调试所需的时间,往往是单机爬虫所需的十倍时间不止。了解Nutch源码的学习成本很高,何况是要让一个团队的人都读懂Nutch源码。调试过程中会出现除程序本身之外的各种问题(hadoop的问题、hbase的问题)。Nutch2的版本目前并不适合开发。官方现在稳定的Nutch版本是nutch2.2.1,但是这个版本绑定了gora-0.3。Nutch2.3之前、Nutch2.2.1之后的一个版本,这个版本在官方的SVN中不断更新。而且非常不稳定(一直在修改)。第二类:JAVA单机爬虫优点:支持多线程。支持代理。能过滤重复URL的。负责遍历网站和下载页面。爬js生成的信息和网页信息抽取模块有关,往往需要通过模拟浏览器(htmlunit,selenium)来完成。缺点:设计模式对软件开发没有指导性作用。用设计模式来设计爬虫,只会使得爬虫的设计更加臃肿。第三类:非JAVA单机爬虫优点:先说python爬虫,python可以用30行代码,完成JAVA50行代码干的任务。python写代码的确快,但是在调试代码的阶段,python代码的调试往往会耗费远远多于编码阶段省下的时间。使用python开发,要保证程序的正确性和稳定性,就需要写更多的测试模块。当然如果爬取规模不大、爬取业务不复杂,使用scrapy这种爬虫也是蛮不错的,可以轻松完成爬取任务。缺点:bug较多,不稳定。爬虫可以爬取ajax信息么?网页上有一些异步加载的数据,爬取这些数据有两种方法:使用模拟浏览器(问题1中描述过了),或者分析ajax的http请求,自己生成ajax请求的url,获取返回的数据。如果是自己生成ajax请求,使用开源爬虫的意义在哪里?其实是要用开源爬虫的线程池和URL管理功能(比如断点爬取)。如果我已经可以生成我所需要的ajax请求(列表),如何用这些爬虫来对这些请求进行爬取?爬虫往往都是设计成广度遍历或者深度遍历的模式,去遍历静态或者动态页面。爬取ajax信息属于deepweb(深网)的范畴,虽然大多数爬虫都不直接支持。但是也可以通过一些方法来完成。比如WebCollector使用广度遍历来遍历网站。爬虫的第一轮爬取就是爬取种子集合(seeds)中的所有url。简单来说,就是将生成的ajax请求作为种子,放入爬虫。用爬虫对这些种子,进行深度为1的广度遍历(默认就是广度遍历)。爬虫怎么爬取要登陆的网站?这些开源爬虫都支持在爬取时指定cookies,模拟登陆主要是靠cookies。至于cookies怎么获取,不是爬虫管的事情。你可以手动获取、用http请求模拟登陆或者用模拟浏览器自动登陆获取cookie。爬虫怎么抽取网页的信息?开源爬虫一般都会集成网页抽取工具。主要支持两种规范:CSSSELECTOR和XPATH。网页可以调用爬虫么?爬虫的调用是在Web的服务端调用的,平时怎么用就怎么用,这些爬虫都可以使用。爬虫速度怎么样?单机开源爬虫的速度,基本都可以讲本机的网速用到极限。爬虫的速度慢,往往是因为用户把线程数开少了、网速慢,或者在数据持久化时,和数据库的交互速度慢。而这些东西,往往都是用户的机器和二次开发的代码决定的。这些开源爬虫的速度,都很可以。

爬虫框架都有什么?

主流爬虫框架通常由以下部分组成:1.种子URL库:URL用于定位互联网中的各类资源,如最常见的网页链接,还有常见的文件资源、流媒体资源等。种子URL库作为网络爬虫的入口,标识出爬虫应该从何处开始运行,指明了数据来源。2.数据下载器:针对不同的数据种类,需要不同的下载方式。主流爬虫框架通畅提供多种数据下载器,用来下载不同的资源,如静态网页下载器、动态网页下载器、FTP下载器等。3.过滤器:对于已经爬取的URL,智能的爬虫需要对其进行过滤,以提高爬虫的整体效率。常用的过滤器有基于集合的过滤器、基于布隆过滤的过滤器等。4.流程调度器:合理的调度爬取流程,也可以提高爬虫的整体效率。在流程调度器中,通常提供深度优先爬取、广度优先爬取、订制爬取等爬取策略。同时提供单线程、多线程等多种爬取方式。

Lucene+nutch搜索引擎开发的目录 内核揭秘篇

4.1 网络蜘蛛原理4.1.1 体系结构设计4.1.2 访问策略与算法4.1.3 效率优化与更新4.1.4 蜘蛛访问规范4.1.5 开源蜘蛛简介4.2 Nutch网络蜘蛛4.2.1 Nutch网络蜘蛛概述4.2.2 Nutch抓取模式分类4.2.3 抓取测试站点建立4.3 Nutch局域网抓取4.3.1 本地下载准备4.3.2 启动下载过程4.3.3 下载过程解析4.3.4 下载多个网站4.4 Nutch互联网抓取4.4.1 下载列表获取4.4.2 下载大量网站4.5 Nutch抓取比较4.6 Nutch结果检测4.6.1 网页内容检索4.6.2 使用Readdb获取摘要4.6.3 使用SegRead读取分段4.6.4 Luke工具使用4.7 Nutch配置文件解析4.8 Heritrix网络蜘蛛4.8.1 Heritrix概述4.8.2 Heritrix体系结构4.8.3 Heritrix安装与使用4.9 小结 5.1 文档索引原理5.1.1 索引概述5.1.2 索引基本结构5.1.3 倒排索引原理5.1.4 索引分类5.1.5 高性能索引5.2 Lucene索引器5.2.1 Lucene索引介绍5.2.2 Lucene索引结构5.2.3 多文件索引结构5.2.4 复合索引结构5.3 Lucene索引实例5.3.1 索引创建代码解析5.3.2 索引创建器(IndexWriter)5.3.3 索引管理器(IndexReader)5.3.4 索引修改器(IndexModifier)5.3.5 索引分析器(Analyzer)5.4 Lucene索引操作5.4.1 添加文本文件索引5.4.2 创建Lucene增量索引5.4.3 使用索引项删除文档5.4.4 使用编号删除文档5.4.5 压缩文档编号5.4.6 索引文档更新5.5 Lucene索引高级特性5.5.1 选择索引域类型5.5.2 索引参数优化5.5.3 使用磁盘索引5.5.4 使用内存索引5.5.5 同步与锁机制5.6 Lucene高级应用实例5.6.1 创建本地搜索的索引5.6.2 索引数据库记录5.6.3 索引优化与合并5.7 Nutch中的Lucene索引5.8 小结 6.1 信息查询原理6.1.1 信息查询概述6.1.2 查询基本流程6.1.3 查询结果显示6.1.4 高性能查询6.2 Lucene查询概述6.2.1 Lucene查询操作基础6.2.2 Lucene查询实例入门6.2.3 查询工具IndexSearcher类6.2.4 查询封装Query类6.2.5 查询分析器QueryParser类6.2.6 查询结果集Hits类6.3 Lucene基本查询6.3.1 Lucene查询Query对象6.3.2 最小项查询TermQuery6.3.3 区间范围搜索RangeQuery6.3.4 逻1/4组合搜索BooleanQuery6.3.5 字串前缀搜索PrefixQuery6.3.6 短语搜索PhraseQuery6.3.7 模糊搜索FuzzyQuery6.3.8 通配符搜索WildcardQuery6.3.9 位置跨度搜索SpanQuery6.4 Lucene高级查询6.4.1 索引内存检索6.4.2 多关键字跨域检索6.4.3 多检索器跨索引检索6.5 Nutch中的Lucene查询6.6 小结 7.1 搜索引擎文档排序原理7.1.1 传统检索排序技术7.1.2 向量模型排序局限7.1.3 搜索引擎相关性排序7.1.4 链接分析PageRank原理7.1.5 搜索引擎排序流程7.2 Lucene检索排序7.2.1 Lucene相关性因素7.2.2 Lucene相关排序流程7.2.3 Lucene排序计算体系7.2.4 Lucene排序控制方法7.3 文档Boost加权排序7.3.1 Lucene中Boost介绍7.3.2 Boost值全文档排序7.3.3 Boost值文档域排序7.3.4 BoostingTermQuery排序7.4 Sort对象检索排序7.4.1 Sort对象概述7.4.2 Sort对象相关性排序7.4.3 Sort对象文档编号排序7.4.4 Sort对象独立域排序7.4.5 Sort对象联合域排序7.4.6 Sort对象逆向排序7.5 Lucene相关性公式7.5.1 Lucene评分结果分析7.5.2 Lucene排序公式7.5.3 其他动态排序因子7.6 Lucene自定义排序7.6.1 自定义排序比较接口7.6.2 自定义排序接口类实例7.6.3 自定义排序结果测试实例7.6.4 自定义排序测试结果7.7 Nutch中的结果排序7.7.1 Nutch排序因素7.7.2 Nutch链接分析7.7.3 Nutch相关度计算7.8 小结 8.1 文档分析与中文分词原理8.1.1 文档分析预处理概述8.1.2 文档分析基本流程8.1.3 中文分析处理中的分词8.2 Lucene分析器内核原理8.2.1 Lucene分析器原理8.2.2 Analysis包简介8.2.3 Analyzer类的组合结构8.2.4 JavaCC构造分析器8.2.5 StopAnalyzer内核代码分析8.2.6 StandardAnalyzer内核代码分析8.3 Lucene分析器应用模式8.3.1 使用默认分析器建立索引8.3.2 使用多种分析器建立索引8.3.3 使用分析器检索查询8.4 Lucene主要分析器应用实例8.4.1 停用词分析器StopAnalyzer8.4.2 标准分析器StandardAnalyzer8.4.3 简单分析器SimpleAnalyzer8.4.4 空格分析器WhitespaceAnalyzer8.4.5 关键字分析器KeywordAnalyzer8.5 TokenStream分词器内核分析8.5.1 Tokenizer分词器8.5.2 标准分词器StandardTokenizer8.5.3 字符分词器CharTokenizer8.5.4 空格分词器WhiteSpaceTokenizer8.5.5 字母分词器LetterTokenizer8.5.6 小写分词器LowerCaseTokenizer8.6 TokenStream过滤器内核分析8.6.1 TokenFilter过滤器8.6.2 标准过滤器StandardFilter8.6.3 停用词过滤器StopFilter8.6.4 小写过滤器LowerCaseFilter8.6.5 长度过滤器LengthFilter8.6.6 词干过滤器PorterStemFilter8.7 Lucene中文分词8.7.1 中文分词基本原理方法8.7.2 StandardAnalyzer分析器中文处理8.7.3 CJKAnalyzer中文分析器8.7.4 ChineseAnalyzer中文分析器8.7.5 IK_CAnalyzer中文分析器8.7.6 中科院ICTCLAS中文分词8.7.7 JE中文分词8.7.8 中文分词问题8.8 Nutch分词和预处理8.8.1 Nutch分析器8.8.2 Nutch中文分词8.9 小结 9.1 非结构化文本简介9.1.1 非结构化文本概述9.1.2 非结构化文本检索9.2 HTML文档分析9.2.1 主流HTML文档分析器9.2.2 HTMLParser安装配置9.2.3 HTMLParser的框架结构9.3 HTMLParser应用实例9.3.1 HTMLParser功能模式9.3.2 HTMLParser内容解析方式9.3.3 Visitor模式正文解析9.3.4 Filter模式简单链接提取9.3.5 Filter模式搜索链接提取9.3.6 Lexer模式遍历文档9.4 PDF文档分析9.4.1 常用的PDF处理包9.4.2 PDFBox安装配置9.5 PDFBox应用实例9.5.1 PDFBox提取文档内容9.5.2 PDFBox文档内容索引9.6 Office文档分析9.6.1 常用Office文档处理包9.6.2 使用POI安装与配置9.6.3 POI原理与接口介绍9.7 POI分析Office文档实例9.7.1 POI处理Excel文档9.7.2 POI处理Word文档9.8 XML文档分析9.8.1 主流XML文档分析器9.8.2 JDOM分析器安装配置9.8.3 xerces分析器安装配置9.9 XML解析应用实例9.9.1 使用JDOM分析XML 文档9.9.2 使用xerces分析XML 文档9.10 Nutch文档处理9.11 小结 10.1 分布式检索与缓存10.1.1 分布式搜索引擎现状10.1.2 分布式搜索引擎原理10.1.3 搜索引擎缓存现状10.1.4 搜索引擎缓存原理10.2 Nutch与分布式检索10.2.1 Google分布式文件系统10.2.2 MapReduce系统介绍10.2.3 Hadoop分布式文件系统10.2.4 Nutch分布式文件系统10.2.5 Nutch分布式检索概述10.2.6 Nutch分布式检索器10.3 Lucene分布式检索10.3.1 Socket通信基础10.3.2 Lucene索引服务器10.4 Nutch与搜索缓存10.5 开源系统缓存系统10.6 小结

上一篇:爱搜卡

下一篇:没有了