我在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);
由于
答案 0 :(得分:0)
有问题的网站使用AJAX在初始加载后动态加载其内容。所以它使用JavaScript来呈现内容。
JSoup不处理Javascript。毕竟它不是一个浏览器。所以JSoup不能在这里使用。
2个解决方案:
1)使用真正的brwoser,例如selenium用Java访问此内容。缺点:您添加了一个新的依赖项。真正的浏览器是资源匮乏的。它可能会运行缓慢。
2)直接调查AJAX调用并尝试模仿这些调用并解释结果。通常这不是HTML格式,而是JSON,因此您可能需要另一个解释库。在你的情况下我没有考虑这个选项,但通常这是更快的选择。