我想使用HtmlUnit抓取网页。我的目的是:
这是网站: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。我的方法是什么?