jsoup解析網頁出現轉義符問題


https://www.oschina.net/question/996055_136438

***************************************

我要解析這個網頁  http://sports.163.com/13/0830/22/97IFSI5I00051CD5.html


然后直接在獲得源碼后,使用select  只捕獲其中一部分  doc.select("textarea[id^=photoList]")

為何出現了這個情況呢、求大牛們幫忙解決啊 @紅薯

 


很奇怪的是,我用轉義符全部替換之后,直接打印在控制台,顯示正確,然后又用Jsoup.parse()這個方法,結果又成了這樣子、大神們,幫幫忙吧@jsoup

html()和outerHtml()的區別只是有沒有包含本層而已,最終底層方法是一樣的,所以這里確實轉義了。

其實也說得通,因為textarea里的內容是“文本”,html里的純文本內容,如果不進行轉義是不安全的。

當然這里你的需求是"保持原文",“轉義再反轉”其實是無法保持原文的。而且Apache的StringEscapeUtils的轉義范圍比Jsoup要小,所以其實反轉是不完整的。

有個比較hack的方法:

 

Document doc = Jsoup.connect("http://sports.163.com/13/0830/22/97IFSI5I00051CD5.html").get();
//清空jsoup的轉義表,會使jsoup失去轉義能力
Entities.EscapeMode.base.getMap().clear();
Elements elements = doc.select("textarea[id^=photoList]");
for(Element e:elements){
    System.out.println(e.html());
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM