爬取整個頁面的數據,併進行有效的提取信息,註釋都有就不廢話了: 上一張自己爬取的圖片,並用fusioncharts生成報表(一般抓取的是int類型的數據的話,生成報表可以很直觀) ...
爬取整個頁面的數據,併進行有效的提取信息,註釋都有就不廢話了:
public class Reptile { public static void main(String[] args) { String url1=""; //傳入你所要爬取的頁面地址 InputStream is=null; //創建輸入流用於讀取流 BufferedReader br=null; //包裝流,加快讀取速度 StringBuffer html=new StringBuffer(); //用來保存讀取頁面的數據. String temp=""; //創建臨時字元串用於保存每一次讀的一行數據,然後html調用append方法寫入temp; try { URL url2 = new URL(url1); //獲取URL; is = url2.openStream(); //打開流,準備開始讀取數據; br= new BufferedReader(new InputStreamReader(is)); //將流包裝成字元流,調用br.readLine()可以提高讀取效率,每次讀取一行; while ((temp = br.readLine()) != null) {//讀取數據,調用br.readLine()方法每次讀取一行數據,並賦值給temp,如果沒數據則值==null,跳出迴圈; html.append(temp); //將temp的值追加給html,這裡註意的時String跟StringBuffere的區別前者不是可變的後者是可變的; } //System.out.println(html); //列印出爬取頁面的全部代碼; if(is!=null) //接下來是關閉流,防止資源的浪費; { is.close(); is=null; } Document doc=Jsoup.parse(html.toString()); //通過Jsoup解析頁面,生成一個document對象; Elements elements=doc.getElementsByClass("XX");//通過class的名字得到(即XX),一個數組對象Elements裡面有我們想要的數據,至於這個div的值呢你打開瀏覽器按下F12就知道了; for (Element element:elements) { System.out.println(element.text()); //列印出每一個節點的信息;你可以選擇性的保留你想要的數據,一般都是獲取個固定的索引; } } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
上一張自己爬取的圖片,並用fusioncharts生成報表(一般抓取的是int類型的數據的話,生成報表可以很直觀)