recaptcha 没有通过 selenium 中的 anticaptcha 插件解决 python
recaptcha wasn't solving by anticaptcha plugin in selenium python
我最近开始在我从事了一段时间的涉及自动化的项目中使用 selenium。计划中的障碍之一是 ReCaptcha 系统,因此我决定使用反验证码作为服务,在我的机器人遇到验证码时解决验证码问题。我正确安装了插件,并在他们的网站上找到了一些带有 selenium 的测试代码。
from python_anticaptcha import AnticaptchaClient, NoCaptchaTaskProxylessTask
def captcha_solver():
api_key = 'xxxxxxxxxxxxxxxxxxxxxxx'
site_key = '6LdZPw8aAAAAAA_1XrIfloCojPwo4TdJ_A_7ioRy' # grab from site
url = 'https://www.rp.gob.pa/'
client = AnticaptchaClient(api_key)
task = NoCaptchaTaskProxylessTask(url, site_key)
job = client.createTask(task)
job.join()
return job.get_solution_response()
captcha = captcha_solver()
driver.execute_script('document.getElementById("g-recaptcha-response").innerHTML = "{}";'.format(captcha))
time.sleep(1)
wait.until(EC.element_to_be_clickable((By.XPATH,'//button[@type="submit"]'))).click()
anticaptcha说recaptcha已经解决了,解决的代码是这样的
03AGdBq24C2SwOzrdAoGpltxX-8vMuBEjwSmHVIRkVcthtqHEsmm7sEyac1vUgTZQHs7bUtK0YwW6NiduvAmXQt6xVxGRSvO1XhsiRPTfa8spSxRG6scwInLccriAV408I4plNzEykQVQya9v2u4PMyCyrVQ6NADI_A_56DuQvuzhLKuiNL-eN4MvtwEt1ueDefa3nwHUZoW-hgMiEcg1jQ4UhZJ0Ncz1favKF8aMB--Ru1-ewClN41MjyVwREHn1xuCNtnMt5rxaFLt0f5SehaFkdccem1rbCTqsb7lOomTEWpX0TiWKl2kOP9efgOJDlwV84ISncydrQseda7pTlf6nL0m_oUY8U-tnWFQi2i8g_ZWwOgrXb6o9lBapoy0-z0SWZARHKecBbfwHa906mG_b2jh9-IPOI-6rduxTnDw4HDlizXGKOU7Z8Cb8pQAhiaYEejiaBU0X2Dc44dq7CL4Q_365277zoKG4YDwgRXjUstT39e-3C_-lpjdNHMkkz9RJTNe0kOie2i3U-BruAh3trh-vM8F7JU4f8m52F335q3GdUb8FQXL7Fd9hLJpb9KfDMV0pfmRuxl5NoECKRbP2gtTTXUJ0ZwQ
我对 g-recaptcha-response
textarea 执行这个已解决的代码并说 selenium 来点击按钮,但结果是这样的
我用anticaptcha无法解决recaptcha,不知道是不是我的代码有问题,但是我按照官方文档使用了recaptcha。请大家帮我解决这个问题。
我终于自己解决了这个问题。如果其他人遇到类似问题,这是我的解决方案:
- 打开控制台,执行以下命令
cmd: ___grecaptcha_cfg.clients
- 找到有回调函数的路径,我这里是___grecaptcha_cfg.clients[0].R.R
- 使用以下代码:
driver.execute_script(f"___grecaptcha_cfg.clients[0].R.R.callback('{new_token}')")
(记得相应地更改路径)
可以使用google控制台获取路径
右键单击回调 -> 复制 属性 路径并粘贴到 driver.execute_script
并将其添加到开始 ___grecaptcha_cfg.
并传递已解决的令牌值
此 Article 将帮助您找到您的 recaptcha 网站的 ___grecaptcha_cfg.clients
driver.execute_script('document.getElementById("g-recaptcha-response").innerHTML = "{}";'.format(g_response))
time.sleep(1)
driver.execute_script(f"___grecaptcha_cfg.clients[0].R.R.callback('{g_response}')")
我最近开始在我从事了一段时间的涉及自动化的项目中使用 selenium。计划中的障碍之一是 ReCaptcha 系统,因此我决定使用反验证码作为服务,在我的机器人遇到验证码时解决验证码问题。我正确安装了插件,并在他们的网站上找到了一些带有 selenium 的测试代码。
from python_anticaptcha import AnticaptchaClient, NoCaptchaTaskProxylessTask
def captcha_solver():
api_key = 'xxxxxxxxxxxxxxxxxxxxxxx'
site_key = '6LdZPw8aAAAAAA_1XrIfloCojPwo4TdJ_A_7ioRy' # grab from site
url = 'https://www.rp.gob.pa/'
client = AnticaptchaClient(api_key)
task = NoCaptchaTaskProxylessTask(url, site_key)
job = client.createTask(task)
job.join()
return job.get_solution_response()
captcha = captcha_solver()
driver.execute_script('document.getElementById("g-recaptcha-response").innerHTML = "{}";'.format(captcha))
time.sleep(1)
wait.until(EC.element_to_be_clickable((By.XPATH,'//button[@type="submit"]'))).click()
anticaptcha说recaptcha已经解决了,解决的代码是这样的
03AGdBq24C2SwOzrdAoGpltxX-8vMuBEjwSmHVIRkVcthtqHEsmm7sEyac1vUgTZQHs7bUtK0YwW6NiduvAmXQt6xVxGRSvO1XhsiRPTfa8spSxRG6scwInLccriAV408I4plNzEykQVQya9v2u4PMyCyrVQ6NADI_A_56DuQvuzhLKuiNL-eN4MvtwEt1ueDefa3nwHUZoW-hgMiEcg1jQ4UhZJ0Ncz1favKF8aMB--Ru1-ewClN41MjyVwREHn1xuCNtnMt5rxaFLt0f5SehaFkdccem1rbCTqsb7lOomTEWpX0TiWKl2kOP9efgOJDlwV84ISncydrQseda7pTlf6nL0m_oUY8U-tnWFQi2i8g_ZWwOgrXb6o9lBapoy0-z0SWZARHKecBbfwHa906mG_b2jh9-IPOI-6rduxTnDw4HDlizXGKOU7Z8Cb8pQAhiaYEejiaBU0X2Dc44dq7CL4Q_365277zoKG4YDwgRXjUstT39e-3C_-lpjdNHMkkz9RJTNe0kOie2i3U-BruAh3trh-vM8F7JU4f8m52F335q3GdUb8FQXL7Fd9hLJpb9KfDMV0pfmRuxl5NoECKRbP2gtTTXUJ0ZwQ
我对 g-recaptcha-response
textarea 执行这个已解决的代码并说 selenium 来点击按钮,但结果是这样的
我用anticaptcha无法解决recaptcha,不知道是不是我的代码有问题,但是我按照官方文档使用了recaptcha。请大家帮我解决这个问题。
我终于自己解决了这个问题。如果其他人遇到类似问题,这是我的解决方案:
- 打开控制台,执行以下命令
cmd: ___grecaptcha_cfg.clients
- 找到有回调函数的路径,我这里是___grecaptcha_cfg.clients[0].R.R
- 使用以下代码:
driver.execute_script(f"___grecaptcha_cfg.clients[0].R.R.callback('{new_token}')")
(记得相应地更改路径)
可以使用google控制台获取路径
右键单击回调 -> 复制 属性 路径并粘贴到 driver.execute_script
并将其添加到开始 ___grecaptcha_cfg.
并传递已解决的令牌值
此 Article 将帮助您找到您的 recaptcha 网站的 ___grecaptcha_cfg.clients
driver.execute_script('document.getElementById("g-recaptcha-response").innerHTML = "{}";'.format(g_response))
time.sleep(1)
driver.execute_script(f"___grecaptcha_cfg.clients[0].R.R.callback('{g_response}')")