gpt4 book ai didi

java - 如何通过 HtmlUnit 设置或延长自动点击提交按钮 (HtmlSubmitInput) 的超时?

转载 作者:太空宇宙 更新时间:2023-11-04 08:07:04 24 4
gpt4 key购买 nike

我正在使用 HtmlUnit 以编程方式填写并提交 Java 中的 Web 表单。这是我的代码:

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(...) 调用),那么有什么方法可以让我设置按钮单击的超时并使其等待超过一分钟,也许十分钟?

最佳答案

截至撰写本文时,此问题尚无已知的解决方案。我最终所做的就是在页面上发出多个自动请求以接收部分数据。基本上,我先查询2002年,然后2003年、2004年,依此类推。

关于java - 如何通过 HtmlUnit 设置或延长自动点击提交按钮 (HtmlSubmitInput) 的超时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11898390/

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