Python'da reCaptcha v3 Kod Örneğiyle Nasıl Atlatılır#
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.
Çö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.