2015-09-06 128 views
-1

我一直在嘗試抓取網站並從中獲取一些數據。我想抓取的網頁是這一個:http://www.oddsportal.com/soccer/england/premier-league/everton-chelsea-4tRin4kn/ 我特別感興趣的是在頁面中間獲取表格中的數字。我試圖通過打印html代碼來以最基本的方式抓取它,然後我的想法是搜索html的數字並將它們保存在文件中。問題是,我無法在html中的任何位置找到這些數字。即使當我在瀏覽器中打開它並點擊顯示源代碼時,我仍然無法找到它們。這是我正在使用的代碼。抓取網站時無法獲取所有數據

private static String getUrlSource(String url) throws IOException { 
     URL yahoo = new URL(url); 
     URLConnection yc = yahoo.openConnection(); 
     BufferedReader in = new BufferedReader(new InputStreamReader(
       yc.getInputStream(), "UTF-8")); 
     String inputLine; 
     StringBuilder a = new StringBuilder(); 
     while ((inputLine = in.readLine()) != null) 
      a.append(inputLine); 
     in.close(); 

     return a.toString(); 
    } 

任何關於如何從表中獲取數據的建議將不勝感激!

回答

1

或者:

  1. 運行就是這樣加載數據,或
  2. 看看網絡請求的頁面做,看看你是否可以直接請求數據頁面上的JS。

請注意,#2可能違反網站的服務條款。

0

使用Google Chrome右鍵單擊表格並選擇「檢查元素」,數字實際上存在於html中。爲了從頁面中提取某些數字,通常使用像Jsoup這樣的庫是很有用的,這樣您就可以基於html頁面的結構提取文本。

+0

不太正確;檢查元素檢查* DOM *,而不是原始請求發送的HTML。表格內容是動態加載的,這意味着它們不可用,直到頁面的DOM準備好的JS已經觸發並實際加載表格。 JSoup不會幫助。 –

+0

這是否意味着無法以某種方式使用java讀取它們? –