是否可以通过 python 请求获得 g-Recaptcha-Response 值?
Is it possible to get a g-Recaptcha-Response value with python requests?
我正在尝试使用 python 请求登录此网站 santillanaconnect.com,问题是我需要获取 g-Recaptcha-Response
的值才能登录(除了其他一些事情,但这些都不是问题)。如果我检查元素并搜索 g-Recaptcha-Response
那么我会得到:
<input type="hidden" id="g-Recaptcha-Response" name="g-Recaptcha-Response" value="long string">
我试图发出 get
请求以将值保存在某个变量中,这样我就可以使用该令牌发出 post
请求。问题是,当我尝试从响应的 html 中获取 g-Recaptcha-Response
的值时,该值未显示,我已经尝试添加 headers (因为它可能不会' t 显示因为 python 请求 User-Agent 被列入黑名单/不常见)但它仍然不起作用
import requests
url = "https://www.santillanaconnect.com/Account/Login/?wtrealm=http%3A%2F%2Flms30.santillanacompartir.com%2Flogin%2Fcompartir%2F&wreply=https%3A%2F%2Flms30.santillanacompartir.com%2Flogin%2Fsso%2Floginconnect"
headers = {
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
"Accept-Encoding": "gzip, deflate, br",
"Accept-Language": "es-ES,es;q=0.9",
"Dnt": "1",
"Upgrade-Insecure-Requests": "1",
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36 Edg/87.0.664.57"
}
with requests.Session() as s:
r = s.get(url, headers=headers)
print (r.text)
“您无法绕过验证码,除非如@schroeder 所述,网站上存在弱点或可以绕过它的选项。您可能需要进行一些试验才能确定是否存在这种情况是这样的
更准确的解决方案涉及多个请求,以及对其他网站的请求。首先发出导致重新验证码出现的请求。然后获取接收到的信息并通过 python 向重新验证码第三方解决服务发送网络请求,该服务接受来自在线请求的重新验证码问题数据。然后根据你从他们那里得到的答案,通过 python 将其作为请求发送回它为 recaptcha 问题发送答案的地方。这样你就可以通过 python 发送请求来解决 recaptchas。 h你仍然没有绕过,但是你正在通过 python 发送请求以通过 recaptcha。
python 的另一个解决方案可能能够解决 recaptcha,并发送请求以便 recaptcha 通过。基本上当你解决一个 recaptcha 时,你的结果是通过 POST 请求发送的。虽然不完全是您问题的 100% 答案,但它确实涉及通过 python.
发送请求
然而,使用 python 解决 recaptcha 需要大量的机器学习、精确的图像识别和 AI 编程知识,其中大多数可能仍未达到 100% 的水平,无法成功完成每个验证码。此外,recaptcha 的设计也让机器人难以解决” - Amol Soneji
我正在尝试使用 python 请求登录此网站 santillanaconnect.com,问题是我需要获取 g-Recaptcha-Response
的值才能登录(除了其他一些事情,但这些都不是问题)。如果我检查元素并搜索 g-Recaptcha-Response
那么我会得到:
<input type="hidden" id="g-Recaptcha-Response" name="g-Recaptcha-Response" value="long string">
我试图发出 get
请求以将值保存在某个变量中,这样我就可以使用该令牌发出 post
请求。问题是,当我尝试从响应的 html 中获取 g-Recaptcha-Response
的值时,该值未显示,我已经尝试添加 headers (因为它可能不会' t 显示因为 python 请求 User-Agent 被列入黑名单/不常见)但它仍然不起作用
import requests
url = "https://www.santillanaconnect.com/Account/Login/?wtrealm=http%3A%2F%2Flms30.santillanacompartir.com%2Flogin%2Fcompartir%2F&wreply=https%3A%2F%2Flms30.santillanacompartir.com%2Flogin%2Fsso%2Floginconnect"
headers = {
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
"Accept-Encoding": "gzip, deflate, br",
"Accept-Language": "es-ES,es;q=0.9",
"Dnt": "1",
"Upgrade-Insecure-Requests": "1",
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36 Edg/87.0.664.57"
}
with requests.Session() as s:
r = s.get(url, headers=headers)
print (r.text)
“您无法绕过验证码,除非如@schroeder 所述,网站上存在弱点或可以绕过它的选项。您可能需要进行一些试验才能确定是否存在这种情况是这样的
更准确的解决方案涉及多个请求,以及对其他网站的请求。首先发出导致重新验证码出现的请求。然后获取接收到的信息并通过 python 向重新验证码第三方解决服务发送网络请求,该服务接受来自在线请求的重新验证码问题数据。然后根据你从他们那里得到的答案,通过 python 将其作为请求发送回它为 recaptcha 问题发送答案的地方。这样你就可以通过 python 发送请求来解决 recaptchas。 h你仍然没有绕过,但是你正在通过 python 发送请求以通过 recaptcha。
python 的另一个解决方案可能能够解决 recaptcha,并发送请求以便 recaptcha 通过。基本上当你解决一个 recaptcha 时,你的结果是通过 POST 请求发送的。虽然不完全是您问题的 100% 答案,但它确实涉及通过 python.
发送请求然而,使用 python 解决 recaptcha 需要大量的机器学习、精确的图像识别和 AI 编程知识,其中大多数可能仍未达到 100% 的水平,无法成功完成每个验证码。此外,recaptcha 的设计也让机器人难以解决” - Amol Soneji