問題一:
當我使用doc.getElementsByClass(“class的值”)對以下帶有#空格#(多值的)的塊,進行獲取數據的時候,發現獲取不到任何數據。
解決過程:
使用其它的方法替換它,使用Elements 的select(String cssQuery)
Elements elements = elementsRoot.get(0).select(searchbar.searchbar-hotel.hide);
這樣便能獲取到該塊對應的數據元素。
問題二:
爬取數據進行解析時存在部分亂碼。
解決過程:
出現亂碼,肯定是編碼格式出現錯誤;
而得到的數據只出現很少的一部分亂碼,可以通過對比方法找問題。經過與原網頁的數據一一進行對應比較,發現是部分空格佔位符 導致的。
既然這個字符對我無意義的,那我將它替換就行。使用以下方法解決:
String hotels = els.text().replace(Jsoup.parse(" ").text(), " ");
問題三:
爬取數據時出現異常。org.jsoup.UnsupportedMimeTypeException: Unhandled content type. Must be text
解決過程:
查看日誌,發現是請求類型不符合。
將原來的代碼:
Connection conn = Jsoup.connect(url).timeout(10 * 1000).get();
更換爲:
Connection conn = Jsoup.connect(url).timeout(10 * 1000).get().ignoreContentType(true);
即可解決!