Skip to content
advanced

مهاجرت از Dataimpulse به Smartproxy: پیکربندی پیشرفته SOCKS5 روی لینوکس برای وباسکرپینگ

بیاموزید چگونه تنظیمات وباسکرپینگ خود را از Dataimpulse به Smartproxy با استفاده از SOCKS5 روی لینوکس منتقل کنید، شامل تکنیک‌های پیشرفته چرخش و مدیریت خطا.

لینوکس SOCKS5 وب اسکرپینگ

مرور کلی

اگر در حال حاضر از Dataimpulse برای وباسکرپینگ استفاده می‌کنید و می‌خواهید به Smartproxy مهاجرت کنید، این راهنما فرآیند مهاجرت را روی لینوکس به شما نشان می‌دهد. Smartproxy یک استخر بیش از ۶۵ میلیون IP با پشتیبانی SOCKS5 ارائه می‌دهد و پروکسی‌های مسکونی و دیتاسنتر آن برای اسکرپینگ در مقیاس بزرگ مناسب هستند. این آموزش پیکربندی پیشرفته، شامل چرخش پروکسی، مدیریت خطا و اسکرپینگ ناهمزمان را پوشش می‌دهد.

پیش‌نیازها

  • یک حساب Smartproxy با پروکسی‌های مسکونی یا دیتاسنتر فعال.
  • یک سیستم لینوکس (تست‌شده روی Ubuntu 22.04، اما دستورات روی اکثر توزیع‌ها کار می‌کنند).
  • Python 3.7+ نصب‌شده.
  • آشنایی پایه با خط فرمان و Python.

مراحل

  1. دریافت اطلاعات احراز هویت SOCKS5 Smartproxy
    وارد داشبورد Smartproxy خود شوید و به بخش راه‌اندازی پروکسی بروید. شما به موارد زیر نیاز دارید:

    • نقطه پایانی پروکسی (میزبان): مثلاً gateway.smartproxy.com (برای نقطه پایانی دقیق داشبورد خود را بررسی کنید).
    • پورت: پورتی که برای SOCKS5 ارائه شده (اغلب 1080، اما در داشبورد خود تأیید کنید).
    • نام کاربری و رمز عبور: اطلاعات احراز هویت شما. این‌ها را برای مراحل بعدی همراه داشته باشید.
  2. پیکربندی متغیرهای محیطی
    اطلاعات احراز هویت خود را به‌صورت متغیرهای محیطی ذخیره کنید تا از کد شما دور بمانند. ترمینال خود را باز کنید و اجرا کنید:

    export SMARTPROXY_USER="your_username"
    export SMARTPROXY_PASS="your_password"
    export SMARTPROXY_HOST="gateway.smartproxy.com"
    export SMARTPROXY_PORT="1080"
    

    مقادیر را با اطلاعات احراز هویت و نقطه پایانی واقعی خود جایگزین کنید.

  3. تست اتصال با cURL
    بررسی کنید که پروکسی SOCKS5 شما با cURL کار می‌کند:

    curl -x socks5://$SMARTPROXY_USER:$SMARTPROXY_PASS@$SMARTPROXY_HOST:$SMARTPROXY_PORT https://httpbin.org/ip
    

    باید آدرس IP پروکسی خود را در پاسخ ببینید. اگر خطایی دریافت کردید، اطلاعات احراز هویت و نقطه پایانی خود را دوباره بررسی کنید.

  4. راه‌اندازی Python برای پروکسی‌های SOCKS5
    بسته‌های لازم را نصب کنید:

    pip install requests requests[socks]
    

    برای اسکرپینگ ناهمزمان، همچنین نصب کنید:

    pip install aiohttp aiohttp_socks
    
  5. اسکرپینگ پایه با Requests
    یک اسکریپت Python ایجاد کنید که از SOCKS5 Smartproxy استفاده می‌کند:

    import os
    import requests
    
    proxy_user = os.getenv('SMARTPROXY_USER')
    proxy_pass = os.getenv('SMARTPROXY_PASS')
    proxy_host = os.getenv('SMARTPROXY_HOST')
    proxy_port = os.getenv('SMARTPROXY_PORT')
    
    proxy_url = f"socks5://{proxy_user}:{proxy_pass}@{proxy_host}:{proxy_port}"
    proxies = {
        'http': proxy_url,
        'https': proxy_url
    }
    
    response = requests.get('https://httpbin.org/ip', proxies=proxies, timeout=10)
    print(response.json())
    

    اسکریپت را اجرا کنید تا مطمئن شوید کار می‌کند.

  6. پیاده‌سازی چرخش پروکسی
    پروکسی‌های مسکونی Smartproxy از چرخش پشتیبانی می‌کنند. می‌توانید چرخش را در داشبورد خود پیکربندی کنید (مثلاً چرخش برای هر درخواست یا استفاده از نشست‌های چسبنده). اگر نیاز به مدیریت چندین نقطه پایانی دارید، یک لیست ایجاد کنید:

    import random
    
    proxy_list = [
        f"socks5://{proxy_user}:{proxy_pass}@{proxy_host}:{proxy_port}",
        # Add more if you have multiple endpoints
    ]
    
    def get_random_proxy():
        return random.choice(proxy_list)
    

    برای چرخش در هر درخواست، اگر چرخش در داشبورد شما فعال است، به‌سادگی همان URL پروکسی را دوباره استفاده کنید.

  7. مدیریت پیشرفته خطا و تلاش مجدد
    وباسکرپینگ در مقیاس بزرگ نیازمند مدیریت خطای قوی است. از tenacity برای تلاش مجدد استفاده کنید:

    pip install tenacity
    
    from tenacity import retry, stop_after_attempt, wait_exponential, retry_if_exception_type
    
    @retry(stop=stop_after_attempt(3), wait=wait_exponential(multiplier=1, min=2, max=10))
    def fetch(url, proxies):
        response = requests.get(url, proxies=proxies, timeout=15)
        response.raise_for_status()
        return response
    

    خطاهای خاص HTTP (مثلاً 403، 429) را مدیریت کنید و در صورت شکست پروکسی را تغییر دهید.

  8. اسکرپینگ ناهمزمان با aiohttp
    برای همزمانی بالا، از aiohttp با aiohttp_socks استفاده کنید:

    import asyncio
    import aiohttp
    from aiohttp_socks import ProxyConnector
    
    async def fetch(session, url):
        async with session.get(url) as response:
            return await response.text()
    
    async def main():
        connector = ProxyConnector.from_url(f"socks5://{proxy_user}:{proxy_pass}@{proxy_host}:{proxy_port}")
        async with aiohttp.ClientSession(connector=connector) as session:
            html = await fetch(session, 'https://httpbin.org/ip')
            print(html)
    
    asyncio.run(main())
    
  9. مهاجرت از Dataimpulse
    اگر کد موجودی دارید که از Dataimpulse استفاده می‌کند، URL پروکسی و اطلاعات احراز هویت را به‌روزرسانی کنید. معمولاً قالب مشابه است، اما مطمئن شوید که از SOCKS5 استفاده می‌کنید. نقطه پایانی Dataimpulse را با Smartproxy جایگزین کنید. به‌طور کامل تست کنید تا مطمئن شوید مهاجرت کار می‌کند.

عیب‌یابی

  • احراز هویت ناموفق: نام کاربری و رمز عبور را بررسی کنید. مطمئن شوید که از پورت صحیح برای SOCKS5 استفاده می‌کنید.
  • اتمام زمان اتصال: بررسی کنید که فایروال شما اتصالات خروجی روی پورت SOCKS5 را مجاز می‌کند.
  • نشت DNS: از socks5h:// به‌جای socks5:// استفاده کنید تا DNS از طریق پروکسی حل شود.
  • سرعت پایین: یک مکان پروکسی دیگر را امتحان کنید یا برای سرعت بیشتر به پروکسی‌های دیتاسنتر سوئیچ کنید.
  • IP مسدود شده: به یک IP جدید تغییر دهید یا از نوع پروکسی دیگری استفاده کنید.

خلاصه

مهاجرت از Dataimpulse به Smartproxy روی لینوکس ساده است. با دنبال کردن این مراحل، می‌توانید پروکسی‌های SOCKS5 را راه‌اندازی کنید، چرخش را پیاده‌سازی کنید و خطاها را برای وباسکرپینگ پیشرفته مدیریت کنید. استخر IP بزرگ Smartproxy و داشبورد کاربرپسند آن، آن را به گزینه‌ای قابل‌اعتماد تبدیل می‌کند. همیشه شرایط استفاده و robots.txt وب‌سایت‌های هدف را رعایت کنید.