برنامه نویسی

نحوه استفاده از 2Captcha برای حل چالش های reCaptcha V3 در پایتون

معرفی

آیا از قفل شدن وب سایت هایی که از reCaptcha V3 استفاده می کنند خسته شده اید؟

بچه ها نگران نباشید، ما یک راه حل داریم! در این وبلاگ نحوه استفاده از Python و کتابخانه 2Captcha برای حل چالش های reCaptcha V3 را به شما آموزش می دهیم.

اما ابتدا اجازه دهید در مورد اینکه چرا reCaptcha V3 چنین است صحبت کنیم درد در ربات. برخلاف نسخه‌های قبلی reCaptcha، V3 نیازی به حل یک معمای تصویری از سوی کاربران ندارد. در عوض، a را اختصاص می دهد امتیاز به هر کاربر بر اساس رفتار مرور آنها، و اگر امتیاز آنها کمتر از یک آستانه خاص باشد، از آنها خواسته می شود تا یک چالش را حل کنند.

این مشکل برای ربات ها و ابزارهای اتوماسیون است زیرا آنها مانند کاربران عادی رفتار نمی کنند. حتی اگر سعی کنید رفتار انسان را تقلید کنید، ممکن است امتیاز شما برای دور زدن چالش بسیار پایین باشد. اینجاست که 2Captcha وارد می شود.

2 کپچا یک سرویس شخص ثالث است که از کارگران انسانی برای حل چالش هایی مانند reCaptcha استفاده می کند. مانند این است که حل کپچا خود را به ارتشی از مترجمان آزاد برون سپاری کنید.

فرآیند است ساده و رعد و برق سریع 🔥:

  1. کپچا برای آنها ارسال شد (captcha -> 2Captcha)
  2. برای یک کارگر می فرستند (2Captcha -> worker)
  3. یک کارگر آن را حل می کند (worker -> 2Captcha)
  4. راه حل برای شما ارسال می شود (2Captcha -> you)

می توانید از 2Captcha به صورت رایگان استفاده کنید، اما برای دسترسی به این سرویس باید برای اعتبار پرداخت کنید. هزینه بسته به تعداد اعتباری که خریداری می کنید متفاوت است، اما به طور کلی مقرون به صرفه است. و این هزینه کمی است برای راحتی عدم نیاز به حل چالش های reCaptcha خودتان.

راه اندازی 2Captcha API

  1. برای استفاده از 2Captcha، باید یک حساب کاربری ایجاد کنید و یک کلید API دریافت کنید. هنگامی که کلید API خود را دارید، می توانید از کتابخانه 2Captcha Python برای ارسال چالش ها به سرویس و دریافت راه حل ها استفاده کنید.

  2. کتابخانه 2Captcha Python را نصب کنید:

pip3 install 2captcha-python
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

  1. یک فایل پایتون جدید ایجاد کنید و کتابخانه 2Captcha را وارد کنید:
import twocaptcha

api_key = 'YOUR_API_KEY_HERE'
solver = twocaptcha.TwoCaptcha(api_key)
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

دریافت Sitekey و Action

قبل از اینکه بتوانید چالش reCaptcha را حل کنید، باید کلید سایت و عملکرد را بدانید. این مقادیر در HTML وب‌سایتی که می‌خواهید به آن دسترسی پیدا کنید، تعبیه شده‌اند.

PS این بخش خسته کننده و سخت است. قول میدم از اینجا بهتر میشه😅.

برای به دست آوردن کلید سایت و عمل، می توانید از عبارات منظم برای جستجوی آنها در HTML استفاده کنید. در اینجا چند کد نمونه وجود دارد که به شما نشان می دهد چگونه این کار را انجام دهید:

import requests
import re

url = 'https://www.example.com'
html = requests.get(url).text

# Set the regex patterns
sitekey_pattern = re.compile(r"data-sitekey='(.*?)'")
action_pattern = re.compile(r'action="(.*?)"')

# Search the HTML for the sitekey and action
sitekey_match = sitekey_pattern.search(html)
action_match = action_pattern.search(html)

# Check if the sitekey and action were found
if sitekey_match:
    sitekey = sitekey_match.group(1)
else:
    sitekey = None

if action_match:
    action = action_match.group(1)
else:
    action = None

# Error & exit if the sitekey or action were not found
if (sitekey == None) or (action == None):
    print("Error: Sitekey or Action not found ❌")
    print(f"Sitekey: {sitekey} | Action: {action}")
    exit()
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

کد فرض می کند که reCAPTCHA وب سایت است sitekey و action با استفاده از الگوها در کد HTML قرار دارند data-sitekey='(.*?)' و action="(.*?)"، به ترتیب. اگر کد HTML وب سایت از الگوهای متفاوتی استفاده می کند، باید الگوهای regex را متناسب با آن تغییر دهید.

اگر هیچ بازی پیدا می شود، کد یک پیام خطا چاپ می کند و خارج می شود. الگوهای regex خود را اصلاح کنید و دوباره امتحان کنید.

توجه داشته باشید: اگر با عبارات منظم یا ایجاد درخواست در پایتون آشنایی ندارید، در اینجا منابعی وجود دارد که می توانند به شما در شروع کار کمک کنند:

  • اگر می خواهید در مورد عبارات منظم کمک بگیرید، از این چیت شیت Regex استفاده کنید.
  • را بخوانید requests اسناد کتابخانه در اینجا

حل چالش reCaptcha

اکنون که شما آن را دارید sitekey و action، می توانید چالش reCaptcha را به 2Captcha ارسال کنید و راه حل را دریافت کنید. در اینجا چند کد نمونه وجود دارد که به شما نشان می دهد چگونه این کار را انجام دهید:

result = solver.recaptcha(
  sitekey=sitekey,
  url=url,
  version="3",
  action=action,
  score=0.6
)

print(result)
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

توجه داشته باشید: این کد فرض می کند که شما از reCaptcha V3 استفاده می کنید، اما می توانید از آن برای حل چالش های reCaptcha V2 نیز استفاده کنید. برای انجام این کار، فقط باید از آن عبور کنید sitekey و url.

کد نهایی

import re
import requests
import twocaptcha

url = 'https://www.example.com'
html = requests.get(url).text

# Set the regex patterns
sitekey_pattern = re.compile(r"data-sitekey='(.*?)'")
action_pattern = re.compile(r'action="(.*?)"')

# Search the HTML for the sitekey and action
sitekey_match = sitekey_pattern.search(html)
action_match = action_pattern.search(html)

# Check if the sitekey and action were found
if sitekey_match:
    sitekey = sitekey_match.group(1)
else:
    sitekey = None

if action_match:
    action = action_match.group(1)
else:
    action = None

# Error & exit if the sitekey or action were not found
if (sitekey == None) or (action == None):
    print("Error: Sitekey or Action not found ❌")
    print(f"Sitekey: {sitekey} | Action: {action}")
    exit()


result = solver.recaptcha(
  sitekey=sitekey,
  url=url,
  version="3",
  action=action,
  score=0.3
  )

print(result)

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

نتیجه

و شما آن را دارید، مردمی! اکنون می دانید که چگونه 2Captcha را در اسکریپت های پایتون خود پیاده سازی کنید. شما می توانید از این تکنیک برای خودکار کردن هر کاری که نیاز به حل چالش های reCaptcha دارد استفاده کنید.

منابع مفید 📚

  1. 2 کتابخانه پایتون کپچا
  2. 2Captcha API Documentation
  3. Google reCaptcha V3
  4. سلنیوم وب درایور
  5. کتابخانه سوپ زیبا

در اصل در acidop.codes منتشر شده است

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا