關於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源代碼分析和鏈接數據分析工作.