关于Heritrix URL乱码问题, 可以通过修改源码解决.
org.archive.crawler.writer.MirrorWriterProcessor.joinParts()
StringBuffer sb = new StringBuffer(length());
String ss = null;
sb.append(mainPart.asStringBuffer());
if (null != uniquePart) {
sb.append(uniquePart);
}
if (suffixAtEnd) {
if (null != query) {
sb.append("@");
sb.append(query);
}
if (null != suffix) {
sb.append('.');
sb.append(suffix);
}
} else {
if (null != suffix) {
sb.append('.');
sb.append(suffix);
}
if (null != query) {
sb.append(query);
}
}
try {
ss = new String(sb.toString().getBytes("ISO-8859-1"),"GB2312");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return ss;
在对Heritrix进行配置并能够成功运行后, 我们调整了Heritrix的参数, 使其能够更快地抓取页面.
我们主要调整的是Frontier的参数, 调整后的参数如下:
随后我们开始了抓取工作, 终于在十月一号早上抓完了ccer全站, 用时约19.5小时, 数据量1.6G, 文件数23814, 其中网页(txt/html/asp)数量19632.
以下是本次Crawl Job的报告:
抓取工作结束后我们发现了一个比较严重的问题: 编码问题. 很多网页抓到本地后文件名是乱码, 而且没法解码(可能是因为文件名被破坏了). 不知道把Writer改为org.archive.crawler.writer.ARCWriterProcessor会不会部分解决这个问题.
下一步我们将进行Heritrix源代码分析和链接数据分析工作.