2017-05-30 124 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的内容。祝你好运。