微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 Python + Selenium + 2captcha 通过没有提交按钮的令牌密钥解决 recaptcha

如何解决使用 Python + Selenium + 2captcha 通过没有提交按钮的令牌密钥解决 recaptcha

我正在尝试使用 2captcha 服务解决 re-CAPTCHA V2

答案键生成并放入框中无法发送,因为没有提交按钮

我试图找到回调,它看起来像这样:

___grecaptcha_cfg.clients[0].V.V.callback

但我不知道如何评估或实施它。

这是我正在使用的脚本

from selenium import webdriver
import time
from selenium.webdriver.common.keys import Keys
import requests
import getpass
import json
from selenium.webdriver.support.ui import Select

from selenium.webdriver.support import expected_conditions as ec
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import webdriverwait

driver = webdriver.Chrome()
driver.get('website.com')

time.sleep(5)

driver.execute_script("window.scrollTo(0,695)")

time.sleep(2)

# 2Captcha service
api_key = '3..........e' # 2captcha api key 
site_key = '6............L' 
pageurl = 'website.com' 
url = "http://2captcha.com/in.PHP?key=" + api_key + "&method=userrecaptcha&googlekey=" + site_key + "&pageurl=" + pageurl 
resp = requests.get(url)

if resp.text[0:2] != 'OK': 
    quit('Service error. Error code:' + resp.text) 
captcha_id = resp.text[3:]

fetch_url = "http://2captcha.com/res.PHP?key="+ api_key + "&action=get&id=" + captcha_id

for i in range(1,10):  
    time.sleep(5) # wait 5 sec.
    resp = requests.get(fetch_url)
    if resp.text[0:2] == 'OK':
        break 

driver.execute_script('var element=document.getElementById("g-recaptcha-response"); element.style.display="";')

driver.find_element_by_xpath("//*[@id='g-recaptcha-response']").send_keys(resp.text[3:])
driver.execute_script("""onSubmit(arguments[0])""",resp.text[3:])

任何帮助将不胜感激。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。