WebClient client = new WebClient();
client.setThrowExceptionOnScriptError(false); // avoid JavaScript errors
client.setTimeout(120000); // 2 minutes
HtmlPage page;
// load the website
page = client.getPage("http://www.some-website.com");
// represent the page elements in Java objects
// input fields and checkboxes first, then...
HtmlSubmitInput submit = form.getInputByName("submitbutton");
// set "value" attributes of input fields and checkboxes...
// submit the page
System.out.println("Submitting... ");
page = submit.click();
System.out.println("Done!");
// return the resulting HTML for scraping
return page.asXml();
,在submit.click()部分,我不断收到以下异常:
java.net.SocketTimeoutException: Timeout while fetching: http://www.some-website.com
我明白那是因为我正在尝试从一路数据传回2002年直到今天。从我的浏览器加载它,整个过程通常需要大约六分钟左右,并返回大约24,200行数据。
我从打印输出Submitting...到输入SocketTimeoutException的时间,在任何情况下,即使我将client超时设置为两分钟,总是只有一分钟。现在,我知道这是初始加载页面(client.getPage(...)调用)的超时时间,所以有什么方法可以让我设置按钮单击的超时时间,并使其等待超过一分钟,也许是十分钟?