Java 使用jsoup从网站提取表时出现问题

Java 使用jsoup从网站提取表时出现问题,java,html,parsing,html-table,jsoup,Java,Html,Parsing,Html Table,Jsoup,我正在从事一个项目,该项目涉及从具有多个HTML表的特定站点提取一个表。以下是我要提取的特定表格的红色框中突出显示的图像: 我的代码是: 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);

我正在从事一个项目,该项目涉及从具有多个HTML表的特定站点提取一个表。以下是我要提取的特定表格的红色框中突出显示的图像:

我的代码是:

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();
}
stringhtml=”https://finance.yahoo.com/quote/GOOG/analysts?p=GOOG";
试一试{
Document doc=Jsoup.connect(html.get();
元素表elements=doc.select(“表”).get(7);
对于(元素行:tableElements.select(“tr”)){
元素tds=行。选择(“td”);
对于(int j=0;j

但是,此代码在选择表时返回索引越界错误。降低索引将从页面中拖出另一个表,我不确定如何选择我想要的特定表。

该表是通过AJAX异步加载的。这就是为什么会出现索引越界异常。加载初始URL时,该表根本不在DOM中。您应该使用browser developer工具分析页面的加载,并找到加载所需数据的AJAX调用。获取所需信息的另一种方法是使用不同的技术(如selenium webdriver)加载内容。SeleniumWebDiver将执行JavaScript,以便加载和呈现整个页面,包括所有AJAX加载的内容。祝你好运。

我记得jsoup支持css选择器。您应该将表格选择器更正为页面上所需的表格。使用您的代码,您正在选择一个通用选择器表。