Jsoup并从表中获取数据

时间:2018-04-13 15:26:31

标签: java web-scraping jsoup

我在BBC和维基百科网站上尝试过类似的代码,我可以访问和处理表格中的数据。当我尝试在这个网站上做同样的事情时,我的错误是什么?当我将其更改为.doc.getElementsByClass("tabela2");时,我可以使用此代码获取一些数据,但不能获得表格中的具体数据。

    String url = "https://www.itau.com.br/investimentos-previdencia/fundos/rentabilidade-uniclass";
    Document doc = null;
    try {
        doc = Jsoup.connect(url)
        .userAgent("Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36")
        .get();
    } catch (IOException e) {
        e.printStackTrace();
    }
    Elements table = doc.getElementsByClass("contentAllInt");
    System.out.println("table: " + table);

由于

1 个答案:

答案 0 :(得分:0)

有问题的网站使用AJAX在初始加载后动态加载其内容。所以它使用JavaScript来呈现内容。

JSoup不处理Javascript。毕竟它不是一个浏览器。所以JSoup不能在这里使用。

2个解决方案:

1)使用真正的brwoser,例如selenium用Java访问此内容。缺点:您添加了一个新的依赖项。真正的浏览器是资源匮乏的。它可能会运行缓慢。

2)直接调查AJAX调用并尝试模仿这些调用并解释结果。通常这不是HTML格式,而是JSON,因此您可能需要另一个解释库。在你的情况下我没有考虑这个选项,但通常这是更快的选择。