Как определить 32-битный ключ данных сайта ReCaptcha V2, чтобы программно получить действительный ответ, используя запросы Selenium и Python? - PullRequest
0 голосов
/ 10 февраля 2020

Довольно много нового с капчей и Python запросами. Документация captcha говорит, что нужно скопировать значение параметра data-sitekey.

Вот моя попытка: использовать Selenium , чтобы открыть URL, и использовать Python * 1008. * чтобы получить ответ.

mainurl = 'https://imagetyperz.xyz/automation/recaptcha-v2.html'
driver.get(mainurl)
data_sitekey_class = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CLASS_NAME, "g-recaptcha"))).get_attribute("data-sitekey")
print(data_sitekey_class)
src_css_selector = driver.find_element_by_css_selector("iframe[role='presentation']").get_attribute("src")
print(src_css_selector)
keygoogle = src_css_selector[52:92]
print('Site Key = ', keygoogle)
data_post = {'key': data_sitekey_class, 'method': 'userrecaptcha', 'googlekey': keygoogle, "pageurl": mainurl}
response = requests.post(url = 'https://2captcha.com/in.php', data = data_post )
print(response)
print(response.text)

Я получаю 200 в качестве ответа:

6LdXeIYUAAAAAFmFKJ6Cl3zo4epRZ0LDdOrYsvRY
https://www.google.com/recaptcha/api2/anchor?ar=1&k=6LdXeIYUAAAAAFmFKJ6Cl3zo4epRZ0LDdOrYsvRY&co=aHR0cHM6Ly9pbWFnZXR5cGVyei54eXo6NDQz&hl=en&v=vJuUWXolyYJx1oqUVmpPuryQ&size=normal&cb=r14cgu7t25ul
Site Key =  6LdXeIYUAAAAAFmFKJ6Cl3zo4epRZ0LDdOrYsvRY
<Response [200]>
ERROR_WRONG_USER_KEY

, что связано с:

ERROR_WRONG_USER_KEY

Далее, Ошибка В разделе упоминается:

Error code: ERROR_WRONG_USER_KEY
Description: You've provided key parameter value in incorrect format, it should contain 32 symbols.
Action: Stop sending requests. Check your API key.

Наконец, Решение Captchas В разделе упоминается:

Получите ключ API со страницы настроек учетной записи. Каждому пользователю предоставляется уникальный токен аутентификации, мы называем его ключом API. Это строка из 32 символов, которая выглядит следующим образом:

1abc234de56fab7c89012d34e56fa7b8

Где в качестве data-sitekey я вижу:

6LdXeIYUAAAAAFmFKJ6Cl3zo4epRZ0LDdOrYsvRY

, что составляет 41 бит.

Куда я иду не так?

1 Ответ

0 голосов
/ 11 февраля 2020

data-sitekey, представленный через строку из 41 символа, работает просто отлично. Произошла ошибка ERROR_WRONG_USER_KEY, так как у меня никогда не было готового действительного API-ключа . Даже с балансом Zero в вашей учетной записи вы можете успешно получить <Response [200]> с текстом ERROR_ZERO_BALANCE следующим образом:

  • Кодовый блок:

    from selenium import webdriver
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    import requests
    
    options = webdriver.ChromeOptions() 
    options.add_argument("start-maximized")
    options.add_experimental_option("excludeSwitches", ["enable-automation"])
    options.add_experimental_option('useAutomationExtension', False)
    driver = webdriver.Chrome(options=options, executable_path=r'C:\WebDrivers\chromedriver.exe')
    mainurl = 'https://imagetyperz.xyz/automation/recaptcha-v2.html'
    driver.get(mainurl)
    data_sitekey = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CLASS_NAME, "g-recaptcha"))).get_attribute("data-sitekey")
    print(data_sitekey)
    api_key = '--------------------------------'
    data_post = {'key': api_key, 'method': 'userrecaptcha', 'googlekey': data_sitekey, "pageurl": mainurl}
    response = requests.post(url = 'https://2captcha.com/in.php', data = data_post )
    print(response)
    print(response.text)
    
  • Выход на консоль:

    6LdXeIYUAAAAAFmFKJ6Cl3zo4epRZ0LDdOrYsvRY
    <Response [200]>
    ERROR_ZERO_BALANCE
    
...