關於利用Jsoup解析HTML中 變成非傳統空格或亂碼問題解決方法

轉載自 http://blog.csdn.net/hubin1989/article/details/49072947

在寫爬蟲的時候很多時候會遇到這種問題:HTML中源碼顯示 沒問題,但是利用Jsoup的text()方法獲取的文字就會出現問題,一般情況是 變成非傳統空格或者亂碼,這樣在解析的時候想切分字符串會無法成功。因爲 是ISO-8859-1的西歐編碼,空格的編碼爲160,而我們普通使用的ASCII的空格編碼是32.這樣就會產生很多麻煩。
所以在利用Jsoup進行解析的時候要特別處理一下這類問題,因爲如果編碼不是亂碼顯示的都是空格,但是此空格非彼空格。
這種問題的處理一般有兩種方法:
1、
把Element轉化爲字符串,用String.replace替換掉,再通過Jsoup.parse()把處理過的字符串轉成Document,再通過Document.text() 得到處理過的內容。   如: 


String temp=tp.toString().replace(" "," ");
Document d=Jsoup.parse(temp);


System.out.println(d.text());


2、


把Element內的文字通過Element.toString()輸出,再用String.replace替換。個人比較推薦這種方法。


String temp = els.text().replace(Jsoup.parse(" ").text(), " ");


System.out.println("temp");


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章