我尝试使用 HtmlUnit (Java)解析 aspx 页面。在每个页面的底部,有一些标签可以导航到下一页/上一页。在每个页面中,只有11个页面编号可见,另外一个页面编号直接进入最后一页。
我的问题是,即使我点击第11页,HtmlPage也无法加载包含下11个页码的列表......所以我无法解析例如第12页的页面。
这是WebClient的初始化:
WebClient webClient = new WebClient(BrowserVersion.CHROME, PROXY_HOST, PROXY_PORT);
webClient.getOptions().setTimeout(12000);
webClient.waitForBackgroundJavaScript(60000);
webClient.getOptions().setRedirectEnabled(true);
webClient.getOptions().setJavaScriptEnabled(true);
webClient.getOptions().setThrowExceptionOnScriptError(false);
webClient.getOptions().setThrowExceptionOnFailingStatusCode(false);
webClient.getOptions().setCssEnabled(false);
webClient.getOptions().setUseInsecureSSL(true);
webClient.setAjaxController(new NicelyResynchronizingAjaxController());
webClient.getCookieManager().setCookiesEnabled(true);
这是我用来点击锚点转到下一页的代码:
HtmlPage rootPage = webClient.getPage(url);
HtmlAnchor a = rootPage.getAnchorByHref(String.format("javascript:__doPostBack('ctl00$ContentPlaceHolder1$GridViewAlbo','Page$%d')", page));
HtmlPage requestedPage = a.click();