1.准备好nutch的源码开放包,使用nutch-0.9
2.file->new->java project->从已有的项目导入
点击next,将conf文件夹修改成Default output folder Browse选择nutch-0.9/conf确定即可,
这时 ,一般确定以后会把conf中以前的文件清空掉,在重新把nutch压缩包里的conf下的所有文件复制到工程的conf下
千万不要把新生成的配置文件删掉
3.下载jid3lib-0.5.1.jar和rtf-parser.jar,右键项目properties,添加外部jar,
若在nutch-1.0下还要一般的工程都会有两个错误,nutch的official 1.0 release版本中,这两个问题因为licensing issues没有修复。接下来的就是最关键的部分了。
修改---- src/plugin/parse-rtf/src/java/org/apache/nutch/parse/rtf下 RTFParseFactory.java
添加----- import org.apache.nutch.parse.ParseResult;
将 ----- public Parse getParse(Content content) {
改为---- public ParseResult getParse(Content content) {
将 ---- return new ParseStatus(ParseStatus.FAILED,
ParseStatus.FAILED_EXCEPTION,
e.toString()).getEmptyParse(conf);
改为-----return new ParseStatus(ParseStatus.FAILED,
ParseStatus.FAILED_EXCEPTION,
e.toString()).getEmptyParseResult(content.getUrl(), getConf());
将------return new ParseImpl(text,
new ParseData(ParseStatus.STATUS_SUCCESS,
title,
OutlinkExtractor.getOutlinks(text, this.conf),
content.getMetadata(),
metadata));
改为------return ParseResult.createParseResult(content.getUrl(),
new ParseImpl(text,
new ParseData(ParseStatus.STATUS_SUCCESS,
title,
OutlinkExtractor.getOutlinks(text, this.conf),
content.getMetadata(),
metadata)));
修改------src/plugin/parse-rtf/src/test/org/apache/nutch/parse/rtf下的 TestRTFParser.java
将-----parse = new ParseUtil(conf).parseByExtensionId("parse-rtf", content);
改为----parse = new ParseUtil(conf).parseByExtensionId("parse-rtf", content).get(urlString);
到这一步,eclipse上面的工程就会没有错误了 .
4.修改Nutch/conf目录下的nutch-site.xml和crawl-urlfilter.txt两个文件,具体的修改方法在cygwin下安装和配置Nutch 0.9一样。
在nutch-0.9目录下创建
其中 修改conf/nutch-site.xml为如下内容,
<configuration>
<property>
<name>http.agent.name</name>
<value>*</value>
</property>
</configuration>
在conf/nutch-defaul.xml下,将属性"plugin.folders"的值由“plugins”更改为 "./src/plugin" 如何nutch是1.0的则不用修改
5.配置好后,run 在Program arguments中填写爬行命令,如:urls -dir myDir -depth 2 -topN 50
在VM arguments中填写:-Dhadoop.log.dir=logs -Dhadoop.log.file=hadoop.log