javascript - 使用 Htmlunit WebClient 未完全加载网页的动态内容

标签 javascript java htmlunit

我正在尝试加载网页( https://genpact.taleo.net/careersection/sgy_external_career_section/jobsearch.ftl?lang=en )以使用 HtmlUnit WebClient 进行抓取。但内容未正确加载。例如,我无法找到“应用”按钮。 我的网络客户端代码如下

webClient.setCssErrorHandler(new DefaultCssErrorHandler());
        webClient.setJavaScriptErrorListener(new DefaultJavaScriptErrorListener());
        webClient.setAjaxController(new NicelyResynchronizingAjaxController());
        webClient.getCookieManager().setCookiesEnabled(true);
        webClient.waitForBackgroundJavaScript(60000);

有人可以帮我解决这个问题吗

最佳答案

这对我有用

public static void main(String[] args) throws IOException{
    final String url = "https://genpact.taleo.net/careersection/sgy_external_career_section/jobsearch.ftl?lang=en";

    try (final WebClient webClient = new WebClient(BrowserVersion.FIREFOX_60)) {
        HtmlPage page = webClient.getPage(url);

        // waitForBackgroundJavaScript has to be called after every action
        // this page is really slow wait for the last part of the dynamic content
        while(!page.asText().contains("Previous\r\n1\r\n2\r\n3\r\n4\r\n")) {
            webClient.waitForBackgroundJavaScript(1_000);
        }

        System.out.println("-------------------------------------------------------------------------------");
        System.out.println(page.asText());
        System.out.println("-------------------------------------------------------------------------------");
    }
}

关于javascript - 使用 Htmlunit WebClient 未完全加载网页的动态内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56255407/

相关文章:

javascript - 事件处理函数超出 for 范围

javascript - 更好的做法 : Eliminate the nested loops?

java - 启动flume agent显示jdk路径错误,是目录,无法执行

java - 使用 HTMLUnit 发送包含多个关键字作为参数的 POST 请求

javascript - Ajax.BeginForm OnBegin 确认 Via jquery modal

javascript - 圆近似,是具有 N 个 Angular 的正多边形

Java 枚举最佳实践

java - 只有一个线程写入时的线程安全

java - 在 Java 的 HTMLUnit 中使用非标准接口(interface)时 SSL 验证失败

javascript - HtmlUnit 未完全加载 YouTube 上的页面