Skip to content
intermediate

چگونه از پروکسی‌های SOCKS5 Dataimpulse با curl و Python در macOS استفاده کنیم

بیاموزید که پروکسی‌های SOCKS5 Dataimpulse را روی macOS برای curl و Python پیکربندی کنید، همراه با مثال‌های عملی برای وب‌اسکرپینگ و تست API.

macOS SOCKS5 HTTP(S) وب اسکرپینگ

مرور کلی

SOCKS5 یک پروتکل پروکسی همه‌کاره است که هر ترافیک TCP را مدیریت می‌کند و آن را برای ابزارهای خط فرمان و اسکریپت‌های Python ایده‌آل می‌سازد. این آموزش نشان می‌دهد چگونه از پروکسی‌های SOCKS5 Dataimpulse روی macOS با curl و کتابخانه requests پایتون استفاده کنید، از جمله نکات احراز هویت و چرخش.

پیش‌نیازها

  • macOS 10.15 یا جدیدتر
  • اطلاعات ورود پروکسی SOCKS5 Dataimpulse (میزبان، پورت، نام کاربری، رمز عبور)
  • curl (از پیش نصب‌شده) و Python 3
  • اختیاری: pip برای نصب بسته‌های Python

چرا SOCKS5؟

Dataimpulse از هر دو HTTP و SOCKS5 پشتیبانی می‌کند. SOCKS5 در سطح پایین‌تری کار می‌کند و از UDP و TCP پشتیبانی می‌کند و اغلب برای ترافیک غیر HTTP قابل اعتمادتر است. برای وب‌اسکرپینگ، می‌تواند به اجتناب از مسدودسازی‌های مختص پروتکل کمک کند.

مراحل

  1. اطلاعات ورود SOCKS5 Dataimpulse خود را دریافت کنید. در داشبورد Dataimpulse خود، یک endpoint SOCKS5 را پیدا کنید. میزبان، پورت، نام کاربری و رمز عبور را یادداشت کنید.

  2. متغیرهای محیطی را تنظیم کنید (اختیاری اما راحت). ترمینال را باز کنید و اجرا کنید:

    export DAI_PROXY_HOST="your-proxy-host"
    export DAI_PROXY_PORT="your-proxy-port"
    export DAI_PROXY_USER="your-username"
    export DAI_PROXY_PASS="your-password"
    

    این متغیرها در دستورات بعدی استفاده خواهند شد.

  3. با curl تست کنید. از فلگ --proxy با اسکیم socks5h استفاده کنید (حرف h تضمین می‌کند که DNS از طریق پروکسی حل می‌شود):

    curl --proxy socks5h://$DAI_PROXY_USER:$DAI_PROXY_PASS@$DAI_PROXY_HOST:$DAI_PROXY_PORT https://httpbin.org/ip
    

    شما باید یک پاسخ JSON با IP Dataimpulse ببینید.

  4. از Python با requests و PySocks استفاده کنید. بسته‌های مورد نیاز را نصب کنید:

    pip3 install requests requests[socks]
    

    یک اسکریپت Python به نام proxy_test.py ایجاد کنید:

    import os
    import requests
    
    proxy_host = os.getenv('DAI_PROXY_HOST')
    proxy_port = os.getenv('DAI_PROXY_PORT')
    proxy_user = os.getenv('DAI_PROXY_USER')
    proxy_pass = os.getenv('DAI_PROXY_PASS')
    
    proxies = {
        'http': f'socks5h://{proxy_user}:{proxy_pass}@{proxy_host}:{proxy_port}',
        'https': f'socks5h://{proxy_user}:{proxy_pass}@{proxy_host}:{proxy_port}'
    }
    
    response = requests.get('https://httpbin.org/ip', proxies=proxies, timeout=30)
    print(response.json())
    

    اجرا کنید:

    python3 proxy_test.py
    
  5. با یک اسکریپت اسکرپینگ ادغام کنید. برای اسکرپینگ ساده، از دیکشنری proxies دوباره استفاده کنید. برای پروکسی‌های چرخشی، برای هر درخواست یک نشست جدید درخواست کنید یا اگر Dataimpulse یک endpoint چرخشی ارائه می‌دهد از آن استفاده کنید (داشبورد خود را بررسی کنید). مثال:

    import requests
    import random
    
    # Assuming you have a list of proxy endpoints
    proxy_list = [
        f'socks5h://{user}:{pass}@{host}:{port}' for host, port, user, pass in [
            # your endpoints
        ]
    ]
    
    def fetch(url):
        proxy = random.choice(proxy_list)
        return requests.get(url, proxies={'http': proxy, 'https': proxy}, timeout=30)
    
  6. DNS و IP را تأیید کنید. از curl با socks5h استفاده کنید تا مطمئن شوید DNS به صورت از راه دور حل می‌شود. اگر IP واقعی خود را می‌بینید، بررسی کنید که از socks5h استفاده می‌کنید و نه socks5.

عیب‌یابی

  • اتصال رد شد: میزبان و پورت را بررسی کنید. مطمئن شوید IP شما در صورت نیاز در لیست سفید قرار دارد.
  • خطای احراز هویت: نام کاربری و رمز عبور را دوباره بررسی کنید. برخی کاراکترهای خاص ممکن است نیاز به URL encoding در URL پروکسی داشته باشند.
  • نشت DNS: همیشه از socks5h استفاده کنید (یا حل DNS از راه دور را پیکربندی کنید) تا از کوئری‌های DNS محلی جلوگیری کنید.
  • خطاهای timeout: مقدار timeout را در Python افزایش دهید و ابتدا با curl تست کنید. پروکسی‌های موبایل ممکن است تأخیر بیشتری داشته باشند.

خلاصه

استفاده از پروکسی‌های SOCKS5 Dataimpulse روی macOS با curl و Python ساده است، زمانی که احراز هویت و حل DNS را به درستی مدیریت کنید. اسکیم socks5h DNS از راه دور را تضمین می‌کند، و کتابخانه requests پایتون همراه با PySocks راهی انعطاف‌پذیر برای ادغام پروکسی‌ها در اسکریپت‌های شما فراهم می‌کند. همیشه با httpbin.org/ip تست کنید تا IP خروجی خود را تأیید کنید.