我试图在这个网站上爬行:https://www.softpedia.com/get/Programming/Other-Programming-Files/Apidog.shtml使用html单元。
我想“单击”“立即下载”按钮,它应该运行 js 代码并在页面上打开一个新窗口:
WebClient webClient = new WebClient(BrowserVersion.EDGE);
webClient.waitForBackgroundJavaScript(20 * 1000);
webClient.getOptions().setJavaScriptEnabled(true);
webClient.getOptions().setUseInsecureSSL(true);
webClient.getOptions().setThrowExceptionOnScriptError(false);
webClient.getOptions().setThrowExceptionOnFailingStatusCode(false);
HtmlPage page = webClient.getPage(patchUrl);
HtmlElement element = page.getFirstByXPath(xpath);
page = element.click();
webClient.waitForBackgroundJavaScript(10 * 1000);
return page.asXml();
我设法通过其 xpath ("//*[@id="dlbtn1"]/a") 获取 html 元素,但从中调用 click() 没有执行任何操作。即使我调用 sleep 或 waitForBackgroundJavaScript(),HtmlElement 中的 readState_ 字段也是“正在加载”而不是“已完成”。
我错过了什么吗?谢谢。
尝试更改代码,在这里搜索答案,查看文档,但没有任何帮助。
当您第一次打开提供的页面时,它会显示一个带有隐私通知和两个按钮的模式(如果您在浏览器中没有看到它,请尝试隐身模式)。理论上,您应该先点击“同意”按钮,然后再点击“下载”。