我正在使用反验证码服务来尝试绕过 Google 的 ReCAPTCHA。
这段代码的结果是:
{'errorId': 0, 'status': 'ready', 'solution': {'gRecaptchaResponse': 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'}, 'cost': '0.00...', 'ip': '127.0.0.1', 'createTime': 9999999999, 'endTime': 9999999999, 'solveCount': 0, 'taskId': 11111111}
使用 gRecaptchaResponse
键,我可以以某种方式绕过验证码,这就是我从 API 文档中了解到的。
我尝试了 https://www.google.com/recaptcha/api2/demo 上的网络分析但我没有得到带有 gRecaptchaResponse
属性的 GET-Request-Method 。所以我不知道如何让它工作,因为我不知道在哪里或如何准确地使用从 Captcha ByPass Service 获得的 gRecaptchaResponse
key 。
但有些题外话:这怎么可能行得通?我的意思是,每次(F5)您尝试验证码时,谷歌通常都会给出一个新的验证码 token 来识别您的身份。因此,对我来说,将一个 token 引用到一个 gRecaptchaResponse
键是合乎逻辑的。因此,如果其他人为您找到了解决方案,他可以给您他的 gRecaptchaResponse
结果 key ,但是这个 key 怎么可能适用于每个 token 呢?
谢谢并致以最诚挚的问候!
def solveCaptcha():
ANTICAPTCHA_KEY = "11133331111333777"
result = NoCaptchaTaskProxyless.NoCaptchaTaskProxyless(
anticaptcha_key=ANTICAPTCHA_KEY
).captcha_handler(
websiteURL="https://www.google.com/recaptcha/api2/demo",
websiteKey="6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
)
print(result)
solveCaptcha()
最佳答案
我想您正在使用带有 Python(Selenium 或类似)的网络驱动。 您应该从您的 Anti-Captcha 帐户获取 ANTICAPTCHA_KEY。它为您的反验证码信用提供 API 访问权限。
我建议您将 ANTCAPTCHA_KEY 添加到您的环境中。在 shell 中执行以下命令或将行添加到 bash 文件(.bashrc 或类似文件)
export ANTICAPTCHA_KEY="your_key"
你的代码可能是这样的:
import os
from python3_anticaptcha import NoCaptchaTaskProxyless
from selenium import webdriver
ANTICAPTCHA_KEY = os.environ["ANTICAPTCHA_KEY"]
def solveCaptcha():
result = NoCaptchaTaskProxyless.NoCaptchaTaskProxyless(
anticaptcha_key=ANTICAPTCHA_KEY
).captcha_handler(
websiteURL="https://www.google.com/recaptcha/api2/demo",
websiteKey="6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
)
return result.get("solution").get("gRecaptchaResponse")
首先,设置 webdriver,获取页面并执行函数将响应分配给变量。
driver = webdriver.Firefox()
driver.get("https://www.google.com/recaptcha/api2/demo")
captcha_response = solveCaptcha()
您可以使用以下脚本使 grecaptcha 响应框可见,以便您可以查看它是否正常工作。
driver.execute_script(
"arguments[0].style.display='inline'",
driver.find_element_by_xpath(
'//*[@id="g-recaptcha-response"]'
),
)
然后执行脚本将响应插入到文本框中:
driver.execute_script(
'document.getElementById("g-recaptcha-response").innerHTML = "%s"'
% captcha_response
)
之后按提交按钮,您就会看到成功。
关于python-3.x - 使用 Python 解决验证码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56501358/