程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> crawler4j抓取頁面應用jsoup解析html時的處理辦法

crawler4j抓取頁面應用jsoup解析html時的處理辦法

編輯:關於JAVA

crawler4j抓取頁面應用jsoup解析html時的處理辦法。本站提示廣大學習愛好者:(crawler4j抓取頁面應用jsoup解析html時的處理辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是crawler4j抓取頁面應用jsoup解析html時的處理辦法正文


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();

}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved