How to identify the 32 bit data-sitekey of ReCaptcha V2 to obtain a valid response programmatically using Selenium and Python Requests?

前端 未结 1 1679
暗喜
暗喜 2020-12-21 08:53

Pretty much new with captcha and Python requests. The captcha documentation says to copy the value of data-sitekey parameter.

Here was my attempt, using

相关标签:
1条回答
  • 2020-12-21 09:36

    data-sitekey represented through 41-characters string works just fine. The error ERROR_WRONG_USER_KEY occurred as I never had a valid API key ready in the first place. Even with Zero balance in your account, you can successfully obtain a <Response [200]> with text as ERROR_ZERO_BALANCE as follows:

    • Code Block:

      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)
      
    • Console Output:

      6LdXeIYUAAAAAFmFKJ6Cl3zo4epRZ0LDdOrYsvRY
      <Response [200]>
      ERROR_ZERO_BALANCE
      
    0 讨论(0)
提交回复
热议问题