当前位置: 首页 > 知识库问答 >
问题:

使用HtmlUnit转到下一个aspx页面

云欣嘉
2023-03-14

我正在尝试用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();

此处截图

共有1个答案

郑博厚
2023-03-14

我最终使用了PhantomJS并成功地解析了所有页面。

 类似资料:
  • 我有一个使用BaseAdapter类的自定义listView。我有一个数组,它有一个散列映射列表。那些Hashmaps(String,Object)包括位图和一些字符串(那些字符串可能有HTML标记)。 如果我没有在我的意图代码上使用putExtra-或putExtra(“String”,“String”),则OnItemClickListener操作可以很好地工作。但是,当我在putExtra中

  • 我正在抓取一个aspx呈现的网页链接到页面 网站是. aspx,我选择了Selenium,机械化,urllib,lxml,美丽的汤,请求。也用了scrapy。 我使用了以下请求: 它给 也试过用机械化,刮擦。他们都只是给出这个结果。如何刮那些网站。但是我可以在浏览器中看到源代码。有没有办法收集那些数据。

  • 我对ASP.NET很陌生,我正试图创建一个学习网站。我在用PHP开发网站,在这里我使用< code >在主页面中包含了另一个PHP文件 我在某个地方看到了这个代码,但它不起作用。

  • 问题内容: 好的,我设置了一个会话…但是现在如何在其他页面上使用它呢? 我试着做 问题答案: 如果您的PHP设置清晰(会话写正常)并且cookie通常发送到浏览器(并保留了),则您应该可以执行以下操作 在第一页上: 在第二页上: 请注意,在发送任何输出之前,必须先调用session_start(),因此,如果必须在会话_start中使用@,它可能会隐藏警告。 由于这些是警告,如果给定的示例不起作用

  • 我正在使用HtmlUnit加载一个满是JavaScript的网页。可以很好地执行JavaScript。 但是,当我单击调用Ajax调用的特定表单上的按钮时,即使调用本身完成了,内容(结果)也不会出现在页面上(即使在真正的浏览器中出现了)。

  • 我在使用htmlUnit WebDriver解析HTML页面时遇到了一些问题。我没有任何例外。我的代码如下所示: 在上面的XML页面源码中,我可以找到我的名字。所以,我似乎正确地记录了它。