HtmlUnit:处理登录自动化中隐藏的 Google reCAPTCHA 令牌

问题描述 投票:0回答:1

我正在使用 HtmlUnit 自动化网站上的登录过程。该网站使用 Google reCAPTCHA 来保护其登录表单,并且 reCAPTCHA 令牌隐藏在 HTML 中。我需要获取并使用此令牌才能成功登录。令牌会作为内容类型在登录 (POST) 请求

http-form-urlencoded
中自动发送。

这是我的代码:

try (final WebClient webClient = new WebClient()) {
webClient.getOptions().setCssEnabled(true);
webClient.getOptions().setRedirectEnabled(true);
webClient.getOptions().setJavaScriptEnabled(true);
webClient.getOptions().setThrowExceptionOnScriptError(false);
webClient.getCookieManager().setCookiesEnabled(true);

HtmlPage page = webClient.getPage("https://b2b.roces.com/en/");
HtmlForm form = page.getFormByName("login-form");

form.getInputByName("login[username]").setValueAttribute(USERNAME);
form.getInputByName("login[password]").setValueAttribute(PASSWORD);

HtmlButton submitButton = form.getFirstByXPath("//*[@id=\"send2\"]");
HtmlPage loggedInPage = submitButton.click();

System.out.println("Page Body: " + loggedInPage.getBody().asText());

} catch (Exception e) {
    e.printStackTrace();
}

为什么 HtmlUnit 没有按预期使用它,我的意思是因为我看到它没有随登录请求一起发送,但我看到所有必需的与 reCaptcha 相关的 URL 正在执行,这甚至是隐藏的 reCaptcha,因此不需要用户交互。有谁能够帮助我?任何帮助或示例代码将不胜感激。

java web-scraping automation recaptcha htmlunit
1个回答
0
投票

您无法像这样登录该网页。 reCAPTCHA 和 cloudflare Turnstile 等人类访客验证旨在阻止和阻止您尝试执行的操作。

您必须联系该网站的管理层才能访问允许您使用自动化登录的 API。

© www.soinside.com 2019 - 2024. All rights reserved.