我正在尝试使用2Captcha来解决一个repatcha v2。当我运行代码时,它成功地获得了repatcha结果并将其存储在result['code']中,然而,当我执行下面的代码提交时,页面似乎只刷新了,而repatcha并没有得到解决。请原谅我的错误,我对编码非常陌生,因此我的代码非常粗糙和实验性。我能在https://2captcha.com/demo/recaptcha-v2?level=high使用这段代码稍微修改了一下,但还没能达到我的目的。有人能向我解释一下我可以做些什么不同的事情吗?
driver.find_element_by_id("g-recaptcha-response").submit()
我已经在下面包括了我的完整代码以及
from selenium import webdriver
import time
import json
import sys
import os
from twocaptcha import TwoCaptcha
loginInfo = json.load(open('logn.json'))
username = loginInfo['username']
password = loginInfo['password']
driver = webdriver.Firefox()
driver.get("https://www.gaiaonline.com/")
loginButton = driver.find_element_by_xpath('//*[@id="login"]')
loginButton.click()
time.sleep(1)
usernameField = driver.find_element_by_xpath('//*[@id="username"]')
usernameField.send_keys(username)
passwordField = driver.find_element_by_xpath('//*[@id="password"]')
passwordField.send_keys(password)
rememberMe = driver.find_element_by_xpath('//*[@id="autologin"]')
rememberMe.click()
loginButton2 = driver.find_element_by_xpath('//*[@id="signInButton"]')
loginButton2.click()
time.sleep(5)
driver.get("https://www.gaiaonline.com/forum/compose/entry/new/79469475/")
time.sleep(4)
sys.path.append(os.path.dirname(os.path.dirname(os.path.realpath(__file__))))
api_key = os.getenv('APIKEY_2CAPTCHA', 'My_API_KEY')
solver = TwoCaptcha(api_key)
result = solver.recaptcha(sitekey=driver.find_element_by_class_name("g-recaptcha").get_attribute("data-sitekey"),
url=driver.current_url)
print(result['code'])
driver.execute_script('var element=document.getElementById("g-recaptcha-response"); element.style.display="";')
driver.execute_script("""
document.getElementById("g-recaptcha-response").innerHTML = arguments[0]
""", result['code'])
time.sleep(3)
driver.find_element_by_id("g-recaptcha-response").submit()
谢谢!
对于处理Selenium和captcha的简单方法,使用"请求";库并处理Selenium和您的请求之间的cookie。
使用cookie,它将帮助解决您的问题。