有没有办法通过使用 selenium python 绕过 Hcaptcha,我尝试了 2captcha(https://2captcha.com/) API,但它不起作用
回答1
虽然自动化验证码不是最佳实践,但在 Selenium 中有三种处理验证码的有效方法:
- 通过在测试环境中禁用验证码
- 添加一个钩子以单击 Captcha 复选框
- 通过向 Webdriver 添加延迟并在测试时手动解决 Captcha
回答2
遗憾的是,绕过不是一种选择。您想要做的是从 2captcha 之类的网站检索解决方案,同时拥有您需要找到名称为“h-captcha-response”的元素并对其进行编辑以使其可见的解决方案,之后您需要编写您的验证码的解决方案并提交表格。
driver.execute_script("document.getElementByName('h-recaptcha-response').style = 'width: 250px; height: 40px; border: 1px solid rgb(193, 193, 193); margin: 10px 25px; padding: 0px;';")
driver.find_element(By.XPATH,'//*[@id="h-recaptcha-response"]').send_keys(recaptcha_solution)
这是我从另一个站点放置的代码,但它也应该使 h-captcha-response 出现在您的情况下,您需要在之后找到元素的 XPATH 并编写您自己的响应并单击提交按钮.
如果代码不起作用,请尝试在 HTML 中查找 h-recaptcha-response 并查看它是否在元素的名称或 ID 上,此示例假定它具有此名称,但它也可能在ID,在这种情况下你应该使用
driver.execute_script("document.getElementById('h-recaptcha-response').style = 'width: 250px; height: 40px; border: 1px solid rgb(193, 193, 193); margin: 10px 25px; padding: 0px;';")