更新:已解决
原来我是个白痴。 Nutch创建的文件是Hadoop序列文件,需要使用类SequenceFile读取和写入。
我在this guide之后建立了Nutch 1.x,我认为它是1.12。
我在OS X上,并使用JDK 1.8.0_92(最新版本)执行此操作。
我在nutch-site.xml中添加了以下代码,并用它们更改了nutch-default.xml。
<property>
<name>parser.character.encoding.default</name>
<value>utf-8</value>
</property>
我甚至硬编码./src/plugin/parse-html/src/java/org/apache/nutch/parse/html/HtmlParser.java
private final String defaultCharEncoding="UTF-8";
this.defaultCharEncoding = getConf().get(
"parser.character.encoding.default", "UTF-8");
然后我运行了以下主要类(我正在爬行reddit):
org.apache.nutch.crawl.Injector
org.apache.nutch.crawl.Generator
org.apache.nutch.fetcher.Fetcher
org.apache.nutch.parse.ParseSegment
完成得很好。
但是获取的数据文件都是乱码文本,如下所示:
£aπHÉ“EJöIIμí╦÷t║½ü&安培;║╗└&GT;Bûb┐∞≈²ôg3½·U(╖
我已经被困了几个小时了,请帮忙。