gpt4 book ai didi

java - Htmlunit中点击按钮后如何刷新页面

转载 作者:行者123 更新时间:2023-11-30 04:11:51 24 4
gpt4 key购买 nike

我正在用 Java 编写一个程序,用于在单击页面底部的下一步按钮后从一系列页面上刮取源代码。我的代码当前是:

public class Htmlunitscraper { 

private static String s = "http://cpdocket.cp.cuyahogacounty.us/SheriffSearch/results.aspx?q=searchType%3dSaleDate%26searchString%3d10%2f21%2f2013%26foreclosureType%3d%27NONT%27%2c+%27PAR%27%2c+%27COMM%27%2c+%27TXLN%27";

public static String scrapeWebsite() throws IOException {

final WebClient webClient = new WebClient();
final HtmlPage page = webClient.getPage(s);
final HtmlForm form = page.getForms().get(0);
final HtmlSubmitInput button = form.getInputByValue(">");
final HtmlPage page2 = button.click();
int amountOfTries = 10;
while (amountOfTries > 0 && String originalHtml = page2.getWebResponse().getContentAsString() !=page.getWebResponse().getContentAsString()) {
amountOfTries--;
synchronized (page) {
page.wait(1000);
}
}
return originalHtml;
}
}

这是我第一次使用Htmlunit,所以一直引用这个post 。对于初学者来说,我不太确定“Form”类是如何工作的,以及它到底做了什么。但对于我的问题,正在打印的字符串是原始网页的源代码,而不是单击下一个按钮后的源代码。从 URL 手动查看源代码时,一旦单击“下一步”按钮,我就必须刷新页面才能查看更新的源代码,所以想象一下我必须在程序中模拟这一点。我该怎么做呢?即使添加刷新方法后,它仍然不起作用。

最佳答案

该网页实际上使用 AJAX,因此单击该按钮不会让您进入新页面。 HTTP 请求在后台发生,一旦完成,页面中的 DOM 就会刷新。但是,您需要等待这种情况发生,但您似乎没有这样做。

引用这个link了解如何在 HTMLUnit 中处理 AJAX 请求。

关于java - Htmlunit中点击按钮后如何刷新页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19414297/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com