使用HtmlUnit抓取动态更改的网页

时间:2018-06-17 06:59:54

标签: java web-crawler htmlunit

我想使用HtmlUnit抓取网页。我的目的是:

  1. 加载页面
  2. 将某些内容写入文字字段
  3. 按下载按钮
  4. 获取新页面
  5. 这是网站:https://9xbuddy.com/

    使用浏览器我可以在文本字段中写入网址,然后按下载按钮并获取下载链接

    我的代码是:

    WebClient webClient = new WebClient(BrowserVersion.FIREFOX_38);
            webClient.getOptions().setJavaScriptEnabled(true);
            webClient.getOptions().setThrowExceptionOnScriptError(false);
            webClient.getOptions().setCssEnabled(false);
            webClient.setAjaxController(new NicelyResynchronizingAjaxController());
            final HtmlPage page = webClient.getPage("https://9xbuddy.com/sites/fembed");
            final HtmlForm form = page.getForms().get(0);
            final HtmlInput urlInput = form.getInputByName("url");
            urlInput.click();
            urlInput.type(iframeUrl);
            final List<HtmlButton> byXPath = (List<HtmlButton>) form.getByXPath("//button[@class='orange-gradient submit_btn']");
            final HtmlPage click = byXPath.get(0).click();
            webClient.waitForBackgroundJavaScript(15000);
    

    问题是:

    当我按下下载按钮时,它可能会发送Ajax reuquest,因为标题已更改为save,几秒后标题更改为Process clompleted 。使用下面的代码我想等待所有ajax请求,但我最终得到的是save标题,这意味着HtmlUnit没有等待ajax。我的方法是什么?

0 个答案:

没有答案