java - 使用 jsoup 进行网页抓取仅返回表格的一部分

标签 java web-scraping jsoup

我是编码新手。
我正在尝试从经纪人网站上抓取一张包含基金列表的表格。代码工作正常,但 ut 仅返回列表的一部分(比列表的前半部分多一点),我找不到原因

我已经检查了 html 结构和标签,一切似乎都是正确的......

int count = 0;
String URL = "https://institucional.xpi.com.br/investimentos/fundos-de-investimento/lista-de-fundos-de-investimento.aspx";

try {
    Document doc = Jsoup.connect(URL).userAgent("Mozilla/17.0").get();
            
for (Element table: doc.select("#tableTodos tr")) {
    Elements tds = table.getElementsByTag("td");
    if (tds.size() > 0) {
        count++;
        System.out.println(count + " - " + tds.get(2).text());
}

这是返回的最后部分

138 - Kapitalo Kappa FIN FIC FIM
139 - Kapitalo Tarkus FIC FIA
140 - Kinea Atlas II FIM
141 - Kinea Chronos FIM
142 - Kinea RF Absoluto FI LP
143 - Leblon Ações FIC FIA
144 - Legacy Capital Advisory FIC FIM
145 - Legg Mason Clearbridge US Large Cap Growth FIA IE
146 - Legg Mason Martin Currie European Absolute Alpha FIM IE
147 - Mauá Capital Ações FIC FIA

只有147,网站上的表格有300多行...

最佳答案

您应该通过“tr”标签而不是td 搜索表中的元素。它将为您提供表中的所有行。然后,在每一行中搜索 td 并打印其文本。

编辑1:

    ChromeOptions chromeOptions = new ChromeOptions();
    chromeOptions.addArguments("--headless");
    chromeOptions.addArguments("--user-agent=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.2840.100 Safari/537.36");
    driver = new ChromeDriver(chromeOptions);
    chromeDriver.get("https://institucional.xpi.com.br/investimentos/fundos-de-investimento/lista-de-fundos-de-investimento.aspx");
    List<WebElement> elements = chromeDriver.findElement(By.xpath("//*[@id=\"tableTodos\"]")).findElements(By.tagName("tr"));
    System.out.println(elements.get(200).getText());

编辑2:

在您的通话中添加 maxBodySize:

Document doc = Jsoup.connect(URL).timeout(0).maxBodySize(0).get();

关于java - 使用 jsoup 进行网页抓取仅返回表格的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55783596/

相关文章:

Java SE 6 和 Java SE 8 JRE 在 Windows 7 上的行为不同(文件权限)

python - Beautiful Soup find() 未找到 Class 的所有结果

python - 无法解析网页中的网站链接

java - 如何使用 JSOUP 提取 css 样式

java - 泛型多种类型

java - 运行 Apache Camel 时出错

java - 如何使用 jsoup 从这个 html 页面获取文本?

Android - 将 Jsoup 与 android_asset html 文件一起使用

java - 我们如何使用 sessionId 取回特定的 session ?

python - Scrapy 抓取被 403/503 阻止