HtmlUnit - 抓取数据

HtmlUnit - scraping data

我如何使用 HtmlUnit 将包含 javascript 的页面提取为 HTML?我发现示例代码如下但无法正常工作。

public class Downloader {

        public static void main(String[] args) throws Exception {
            LogFactory.getFactory().setAttribute("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.NoOpLog");

            java.util.logging.Logger.getLogger("com.gargoylesoftware.htmlunit").setLevel(Level.OFF); 
            java.util.logging.Logger.getLogger("org.apache.commons.httpclient").setLevel(Level.OFF);

            try (final WebClient webClient = new WebClient()) {
                final HtmlPage page = webClient.getPage("https://www.oddsportal.com/matches/soccer/");
                System.out.println(page.asText());
            }
            System.out.println("END");
        }
}

使用这段代码,我进入了无限循环。我不知道为什么。如果我在 firefox 检查器中打开上面的站点,我可以在执行 javascript 后看到完整的 HTML 代码。我如何使用 HtmlUnit 达到相同的结果。有可能的?也许我应该使用任何其他图书馆?有什么建议吗?

HtmlUnit 在解释 javascript 时往往有很多问题。如果您只是在寻找游戏数据,否则您可能会更成功: https://github.com/gingeleski/odds-portal-scraper

无论如何,我设法让代码与更改浏览器版本一起工作: final WebClient webClient = new WebClient(BrowserVersion.FIREFOX_60)