轉載自 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");