我正在用 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,所以我一直在参考这篇文章。对于初学者,我不完全确定“Form”类是如何工作的,以及它究竟做了什么。不过,对于我的问题,正在打印的字符串是来自原始网页的源代码,而不是在单击下一个按钮之后。从 URL 手动查看源代码时,单击下一步按钮后,我必须刷新页面才能查看更新的源代码,所以想象一下我必须在我的程序中模拟它。我该怎么做呢?即使添加了刷新方法,它仍然无法正常工作。