crawler4j抓取頁面使用jsoup解析html時的解決方法
更新時間:2014年04月08日 09:11:07 作者:
crawler4j對response沒有指定編碼的頁面,解析成亂碼,很讓人煩惱,下面給出解決方法,需要的朋友可以參考下
crawler4j對已有編碼的頁面抓取效果不錯,用jsoup解析,很多會jquery的程序員都可以操作。但是,crawler4j對response沒有指定編碼的頁面,解析成亂碼,很讓人煩惱。在找了苦悶之中,無意間發(fā)現一年代已久的博文,可以解決問題,修改 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();
}
相關文章
詳解mybatis-plus實體類中字段和數據庫中字段名不對應解決辦法
這篇文章主要介紹了詳解mybatis-plus實體類中字段和數據庫中字段名不對應解決辦法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-03-03Spring Boot + Vue 前后端分離開發(fā)之前端網絡請求封裝與配置
這篇文章主要介紹了Spring Boot + Vue 前后端分離開發(fā)之前端網絡請求封裝與配置方法,本文給大家介紹的非常詳細,具有一定的參考借鑒價值 ,需要的朋友可以參考下2019-05-05