作者:COMEX黄金2502897957 | 来源:互联网 | 2022-10-17 22:58
crawler4j对已有编码的页面抓取效果不错,用jsoup解析,很多会jquery的程序员都可以操作。但是,crawler4j对response没有指定编码的页面,解析成乱码,很让人烦恼。在找了苦闷之中,无意间发现一年代已久的博文,可以解决问题,修改 Page.load() 中的 contentData 编码即可,这让我心中顿时舒坦了很多,接下来的问题都引刃而解了。
代码如下:
public void load(HttpEntity entity) throws Exception {
cOntentType= null;
Header type = entity.getContentType();
if (type != null) {
cOntentType= type.getValue();
}
cOntentEncoding= null;
Header encoding = entity.getContentEncoding();
if (encoding != null) {
cOntentEncoding= encoding.getValue();
}
Charset charset = ContentType.getOrDefault(entity).getCharset();
if (charset != null) {
cOntentCharset= charset.displayName();
}else{
cOntentCharset= "utf-8";
}
//源码
//cOntentData= EntityUtils.toByteArray(entity);
//修改后的代码
cOntentData= EntityUtils.toString(entity, Charset.forName("gbk")).getBytes();
}