在Java中加载javascript init方法后获取HTML文件

在Java中加载javascript init方法后获取HTML文件,javascript,java,jsoup,http-get,Javascript,Java,Jsoup,Http Get,我有一个Java代码,我想在其中加载一个HTML文件并解析它。我正在使用jsoup库,一切正常 问题是,当我获取HTML资源时,加载和完成页面需要一些时间,可能有一些JavaScript代码正在运行,并从DB获取数据以放入HTML资源 但是,当使用Java获取资源时,它不会等待资源完成,而是返回一个带有空字段的HTML文件 我尝试过经典的jsoup方式: 和WebClient软件包: 但两者都不起作用 如何让我的程序等待一切完成?要在加载html资源后返回它,需要异步检索数据。为了实现这一点,我

我有一个Java代码,我想在其中加载一个HTML文件并解析它。我正在使用jsoup库,一切正常

问题是,当我获取HTML资源时,加载和完成页面需要一些时间,可能有一些JavaScript代码正在运行,并从DB获取数据以放入HTML资源

但是,当使用Java获取资源时,它不会等待资源完成,而是返回一个带有空字段的HTML文件

我尝试过经典的jsoup方式:

和WebClient软件包:

但两者都不起作用


如何让我的程序等待一切完成?

要在加载html资源后返回它,需要异步检索数据。为了实现这一点,我相信您希望在将来使用Java。尝试查看CompletetableFuture类

你也可以看看这个问题和答案

在JavaScript中,这可以通过回调或承诺来实现,其优点和缺点如下所述:

Connection conn = Jsoup.connect("http://www.tsetmc.com/loader.aspx?ParTree=151311&i=43362635835198978");
Document doc = conn.get(); 
String title = doc.title();
System.out.println(title);
WebClient client = new WebClient(BrowserVersion.FIREFOX_60);
client.waitForBackgroundJavaScriptStartingBefore(5000);
HtmlPage page = client.getPage("http://www.tsetmc.com/loader.aspx?ParTree=151311&i=43362635835198978");
String pageTxt = page.asText();
System.out.println(pageTxt);