Join And Get Free Trial!

Python'da reCaptcha v3 Kod Örneğiyle Nasıl Atlatılır#

logoNextCaptcha
August 01,2024

Genel bakış#

Web sitesi etkileşimlerini otomatikleştirmek, test etme ve tekrarlayan görevleri büyük ölçüde kolaylaştırabilir. Ancak, sıklıkla ortaya çıkan bir sorun, insan kullanıcılar ile botlar arasında ayrım yapmayı amaçlayan reCAPTCHA tanımadır. Bu kılavuz, reCAPTCHA v3 zorluklarını Python ve bu CAPTCHA'ları etik ve yasal bir şekilde ele almak için insan çözücüler kullanan NextCaptcha hizmetini kullanarak nasıl çözeceğinizi gösterecektir.

Hazırlık#

Başlamadan önce şunları yapmanız gerekir:
  • NextCaptcha hesabına kaydolun: NextCaptcha'ya gidin ve API anahtarınızı almak için kaydolun.

  • Gerekli Python paketlerini yükleyin: Sahip olduğunuzdan emin olun requests kurulu. Eğer henüz yoksa pip kullanarak kurabilirsiniz:

      pip install requests

Sitekey'i bulma#

Bir reCAPTCHA'yı çözmek için, reCAPTCHA'nın kullanıldığı sayfanın HTML'sine gömülü site anahtarına ihtiyacınız vardır. Bunu şu şekilde bulabilirsiniz:
  • reCAPTCHA ile sayfaya gidin.

  • Sayfanın kaynağını inceleyin: Sayfaya sağ tıklayın ve "İncele" veya "Sayfa Kaynağını Görüntüle"yi seçin.

  • Site anahtarını arayın: Aramak data-sitekey HTML'deki öznitelik. Şuna benzer bir şey olacak:

      <div class="g-recaptcha" data-sitekey="YOUR_SITE_KEY"></div>

    Bunu kopyala YOUR_SITE_KEY değer.

Captcha'yı çözmek#

Artık site anahtarına sahip olduğunuza göre, reCAPTCHA sorununu çözmek için NextCaptcha API'sini kullanabilirsiniz.
  • reCAPTCHA v3'ü çözmek için NextCaptcha'ya bir istek gönderin:

    import requests
     
    # Your NextCaptcha API key
    API_KEY = 'YOUR_NextCAPTCHA_API_KEY'
     
    # The URL of the page with the reCAPTCHA
    url = 'URL_OF_THE_PAGE_WITH_RECAPTCHA'
     
    # The site key for reCAPTCHA v3
    site_key = 'YOUR_SITE_KEY'
     
    # Requesting the reCAPTCHA solution
    response = requests.post('https://api.nextcaptcha.com/createTask', data={
        "clientKey": API_KEY,
        "task": {
            "type":"RecaptchaV3TaskProxyless",
            "websiteURL":url,
            "websiteKey":site_key
        }
    })
     
    request_id = response.json().get('taskId')
     

  • Çözüm için anket:

    import time
     
    solution = None
    while solution is None:
        time.sleep(1)  # Wait a few seconds before checking again
        response = requests.post('https://api.nextcaptcha.com/getTaskResult', data={
    		  "clientKey": "api key",
    		  "taskId": request_id
    		})
        if response.json().get('errorId') == 0:
            solution = response.json().get('solution')
     
    # The reCAPTCHA token
    recaptcha_token = solution["gRecaptchaResponse"]
    print(f'reCAPTCHA token: {recaptcha_token}')
     

Çözülmüş Captcha'nın Gönderilmesi#

reCAPTCHA token'ını aldıktan sonra, CAPTCHA çözümü gerektiren form veya istekle birlikte gönderebilirsiniz. Formu nasıl gönderebileceğinize dair bir örnek:
# URL where the form is submitted
form_submit_url = 'URL_TO_SUBMIT_FORM'
 
# Form data including the reCAPTCHA token
form_data = {
    'some_form_field': 'value',
    'g-recaptcha-response': recaptcha_token
}
 
# Submit the form
response = requests.post(form_submit_url, data=form_data)
print(response.text)
 

Otomatik reCaptcha Çözümü için Tam Kod#

Tüm adımları birleştirerek, işte tam kod:

import requests
import time
 
# Your NextCaptcha API key
API_KEY = 'YOUR_NextCAPTCHA_API_KEY'
 
# The URL of the page with the reCAPTCHA
url = 'URL_OF_THE_PAGE_WITH_RECAPTCHA'
 
# The site key for reCAPTCHA v3
site_key = 'YOUR_SITE_KEY'
 
# Requesting the reCAPTCHA solution
response = requests.post('https://api.nextcaptcha.com/createTask', data={
    "clientKey": API_KEY,
    "task": {
        "type":"RecaptchaV3TaskProxyless",
        "websiteURL":url,
        "websiteKey":site_key
    }
})
 
task_id = response.json().get('taskId')
 
solution = None
while solution is None:
    time.sleep(1)  # Wait a few seconds before checking again
    response = requests.post('https://api.nextcaptcha.com/getTaskResult', data={
		  "clientKey": "api key",
		  "taskId": task_id
		})
    if response.json().get('errorId') == 0:
        solution = response.json().get('solution')
 
# The reCAPTCHA token
recaptcha_token = solution["gRecaptchaResponse"]
print(f'reCAPTCHA token: {recaptcha_token}')
 
# URL where the form is submitted
form_submit_url = 'URL_TO_SUBMIT_FORM'
 
# Form data including the reCAPTCHA token
form_data = {
    'some_form_field': 'value',
    'g-recaptcha-response': recaptcha_token
}
 
# Submit the form
response = requests.post(form_submit_url, data=form_data)
print(response.text)
Bu kılavuzu takip ederek, etkileşimde bulunduğunuz sitelerin hizmet şartlarına uygun şekilde reCAPTCHA v3 zorluklarını çözme sürecini otomatikleştirebilirsiniz.