2017-05-30 179 views
0

我正在從事一個涉及從具有多個HTML表格的特定網站中提取表格的項目。下面是一個圖像中的紅色框突出特定的表我想提取:無法從jsoup網站提取表格

Image

而且我的代碼:

String html = "https://finance.yahoo.com/quote/GOOG/analysts?p=GOOG"; 
try { 
    Document doc = Jsoup.connect(html).get(); 
    Element tableElements = doc.select("table").get(7); 

    for (Element row : tableElements.select("tr")) { 
     Elements tds = row.select("td"); 
     for (int j = 0; j < tds.size(); j++) { 
      System.out.println(tds.get(j).text()); 
     } 
    } 
} catch (IOException e) { 
    e.printStackTrace(); 
} 

但是選擇表時,該代碼返回的索引出界失誤。降低索引將從頁面中拉出其他表格之一,我不確定如何選擇我想要的特定表格。

+0

我記得jsoup支持css選擇器。您應該將表格選擇器更正爲您希望在頁面上使用的表格。用你的代碼,你正在選擇一個通用選擇器表。 –

回答

0

問題表是通過AJAX異步加載的。這就是爲什麼你得到一個索引越界異常。加載初始網址時,表格根本就不在DOM中。您應該使用瀏覽器開發工具分析頁面的加載,並找到加載所需數據的AJAX調用。獲取所需信息的另一種方法是使用像selenium webdriver這樣的其他技術加載內容。 Selenium webdiver將執行JavaScript,以便加載並呈現整個頁面,包括所有載入AJAX的內容。祝你好運。