2 valiant303 valiant303 于 2016.02.17 13:09 提问

nutch自定义要抓取内容

刚接触nutch,环境是VirtualBox虚拟机安装centos6.5 64位 ,在CentOS下使用svn从官网检出nutch 2.3 。初步的需求就是,根据我自定义的url,通过输入某些关键词(或html标签、或者正则表达式),来把匹配的网页内容抓取下来。后续再进行分析(后话)
我还在学习中,发现nutch2.3版本中,已经用bin/crawl命令取代了老版本的 bin/nutch crawl ,参数列表几乎完全都变了.
我尝试了如下操作:
这是2.3版本的命令参数: bin/crawl
Usage: crawl []

然后我使用:bin/crawl urls/ MyFirstCrawl http://localhost:8080/solr 6 其中:
urls:是我建立的抓取文件所在的上级目录(结构:urls/urls.txt,urls.txt中存了要抓取的页面url)
MyFirstCrawl:自定义的crawl名称
solrUrl:这个地址是随便填写的
然后如下错误:
/home/release-2.3/runtime/local/bin/nutch generate -D mapred.reduce.tasks=2 -D mapred.child.java.opts=-Xmx1000m -D mapred.reduce.tasks.speculative.execution=false -D mapred.map.tasks.speculative.execution=false -D mapred.compress.map.output=true -topN 50000 -noNorm -noFilter -adddays 0 -crawlId MyFirstCrawl -batchId 1455677914-18990
GeneratorJob: starting at 2016-02-17 10:58:35
GeneratorJob: Selecting best-scoring urls due for fetch.
GeneratorJob: starting
GeneratorJob: filtering: false
GeneratorJob: normalizing: false
GeneratorJob: topN: 50000
java.util.NoSuchElementException
at java.util.TreeMap.key(TreeMap.java:1221)
at java.util.TreeMap.firstKey(TreeMap.java:285)
at org.apache.gora.memory.store.MemStore.execute(MemStore.java:125)
at org.apache.gora.query.impl.QueryBase.execute(QueryBase.java:73)
at org.apache.gora.mapreduce.GoraRecordReader.executeQuery(GoraRecordReader.java:68)
at org.apache.gora.mapreduce.GoraRecordReader.nextKeyValue(GoraRecordReader.java:110)
at org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader.nextKeyValue(MapTask.java:531)
at org.apache.hadoop.mapreduce.MapContext.nextKeyValue(MapContext.java:67)
at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:144)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:764)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:364)
at org.apache.hadoop.mapred.LocalJobRunner$Job$MapTaskRunnable.run(LocalJobRunner.java:223)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
GeneratorJob: finished at 2016-02-17 10:58:38, time elapsed: 00:00:02
GeneratorJob: generated batch id: 1455677914-18990 containing 0 URLs
Generate returned 1 (no new segments created)
Escaping loop: no more URLs to fetch now

请问这个错误代表什么?我该怎么样调整。
另外,如果想要完成我开头说的抓取需求 我该做怎样的配置才能实现?

1个回答

devmiao
devmiao   Ds   Rxr 2016.02.18 23:11
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Nutch抓取数据内容的详解
命令:$ bin/nutch crawl tianya -dir crawl_tianya -depth 3 -topN 10(存放seed路径在tianya目录下) 抓取过程为: Injector-》                   Generator-》Fetcher-》ParseSegment-》CrawlDb update  depth=1           
Nutch 查看抓取的文件
ls data           -- 有3个文件夹 crawldb  linkdb  segments ls data/crawldb   -- 有2个文件夹:current  old。其中old 做冗余备份 ls data/crawldb/current/   -- part-00000 ,由hadoop reduce 生成的文件夹
nutch1.12增加抓取ajax功能页面插件
目前nutch有1.x和2.x两个版本,这两个版本并行更行。由于有人说2.x不成熟,问题较多,因此本人选用1.12.但是1.12不能抓取ajax渲染的页面,google上查到,1.8有个版本,有个大牛开发了抓取ajax功能的插件(https://github.com/xautlx/nutch-htmlunit),拿来用了下,安装后,发现有的页面有乱码,按这个方法解决了下,还是不行(http://b
Nutch源代码研究 网页抓取 fetch
搜索引擎Nutch源代码研究之一 网页抓取:  Nutch的爬虫代码部分主要集中在:package org.apache.nutch.fetcher和插件protocol-file  Protocol-ftp protocol-http protocol-httpclient以及相应的Parser插件中:  下面我们先从org.apache.nutch.fetcher开始:  最主要的类是
Nutch-2.2.1学习之八过滤抓取数据
在Nutch的conf目录中有automaton-urlfilter.txt、regex-urlfilter.txt、suffix-urlfilter.txt、prefix-urlfilter.txt、domain-urlfilter.txt几个文件用于实现过滤抓取数据,比如不抓取后缀为gif、exe的文件等,通过修改其中的值可以达到只抓取感兴趣的内容的目的,在一定程度上也有助于提高抓取速度。
深入分析nutch的抓取流程
分析Nutch的工作流程 Nutch爬虫工作策略 Nutch爬虫的工作策略一般则可以分为累积式抓取(cumulative crawling)和增量式抓取(incrementalcrawling)两种。 累积式抓取是指从某一个时间点开始,通过遍历的方式抓取系统所能允许存储和处理的所有网页。在理想的软硬件环境下,经过足够的运行时间,累积式抓取的策略可以保证抓取到相当规模的网页集合
nutch爬取新闻,如何做到指定的定时更新
爬新闻,需要注意的是,一定要更新 #!/bin/sh export JAVA_HOME=/usr/java/jdk1.6.0_45 export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/jre/lib/dt.jar:$JAVA_HOME/jre/lib/tools.jar export PATH=$PATH:$JAV
nutch (全文搜索和Web爬虫) 基础概念
Nutch 是一个开源Java实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。
Nutch 2.2.1+MySQL+Solr4.2实现网站内容的抓取和索引
在local目录下创建 search。把apache-nutch-2.2.1-src.tar.gz 上传到search 目录中 解压,然后再数据库中执行以下sql。 手动创建数据库nutch和数据表webpage,其中webpage的表结构如下: CREATE TABLE `webpage` (   `id` varchar(767) CHARACTER SET latin1 NOT NUL
Nutch内容过滤的实现
<br />Nutch插件机制非常好,它给我们提供了爬取各个步骤的接口,使我们能够自己定制想要的功能,关于nutch插件编写的例子请看我<br />之前的一篇文章,这里主要介绍下如何通过插件方式对爬取的内容进行过滤。我把需要过滤的内容以关键词的形式存储在数据库中<br />,爬取时从数据库中提取到内存中,当建立索引时,如果网页包含有需要过滤的内容,则丢弃该网页。要实现索引过滤就必须实现<br />org.apache.nutch.indexer.IndexingFilter这个接口,参考代码如下:<br /