مهاجرت از Dataimpulse به Smartproxy: پیکربندی پیشرفته SOCKS5 روی لینوکس برای وباسکرپینگ
بیاموزید چگونه تنظیمات وباسکرپینگ خود را از Dataimpulse به Smartproxy با استفاده از SOCKS5 روی لینوکس منتقل کنید، شامل تکنیکهای پیشرفته چرخش و مدیریت خطا.
مرور کلی
اگر در حال حاضر از Dataimpulse برای وباسکرپینگ استفاده میکنید و میخواهید به Smartproxy مهاجرت کنید، این راهنما فرآیند مهاجرت را روی لینوکس به شما نشان میدهد. Smartproxy یک استخر بیش از ۶۵ میلیون IP با پشتیبانی SOCKS5 ارائه میدهد و پروکسیهای مسکونی و دیتاسنتر آن برای اسکرپینگ در مقیاس بزرگ مناسب هستند. این آموزش پیکربندی پیشرفته، شامل چرخش پروکسی، مدیریت خطا و اسکرپینگ ناهمزمان را پوشش میدهد.
پیشنیازها
- یک حساب Smartproxy با پروکسیهای مسکونی یا دیتاسنتر فعال.
- یک سیستم لینوکس (تستشده روی Ubuntu 22.04، اما دستورات روی اکثر توزیعها کار میکنند).
- Python 3.7+ نصبشده.
- آشنایی پایه با خط فرمان و Python.
مراحل
-
دریافت اطلاعات احراز هویت SOCKS5 Smartproxy
وارد داشبورد Smartproxy خود شوید و به بخش راهاندازی پروکسی بروید. شما به موارد زیر نیاز دارید:- نقطه پایانی پروکسی (میزبان): مثلاً
gateway.smartproxy.com(برای نقطه پایانی دقیق داشبورد خود را بررسی کنید). - پورت: پورتی که برای SOCKS5 ارائه شده (اغلب 1080، اما در داشبورد خود تأیید کنید).
- نام کاربری و رمز عبور: اطلاعات احراز هویت شما. اینها را برای مراحل بعدی همراه داشته باشید.
- نقطه پایانی پروکسی (میزبان): مثلاً
-
پیکربندی متغیرهای محیطی
اطلاعات احراز هویت خود را بهصورت متغیرهای محیطی ذخیره کنید تا از کد شما دور بمانند. ترمینال خود را باز کنید و اجرا کنید:export SMARTPROXY_USER="your_username" export SMARTPROXY_PASS="your_password" export SMARTPROXY_HOST="gateway.smartproxy.com" export SMARTPROXY_PORT="1080"مقادیر را با اطلاعات احراز هویت و نقطه پایانی واقعی خود جایگزین کنید.
-
تست اتصال با cURL
بررسی کنید که پروکسی SOCKS5 شما با cURL کار میکند:curl -x socks5://$SMARTPROXY_USER:$SMARTPROXY_PASS@$SMARTPROXY_HOST:$SMARTPROXY_PORT https://httpbin.org/ipباید آدرس IP پروکسی خود را در پاسخ ببینید. اگر خطایی دریافت کردید، اطلاعات احراز هویت و نقطه پایانی خود را دوباره بررسی کنید.
-
راهاندازی Python برای پروکسیهای SOCKS5
بستههای لازم را نصب کنید:pip install requests requests[socks]برای اسکرپینگ ناهمزمان، همچنین نصب کنید:
pip install aiohttp aiohttp_socks -
اسکرپینگ پایه با 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())اسکریپت را اجرا کنید تا مطمئن شوید کار میکند.
-
پیادهسازی چرخش پروکسی
پروکسیهای مسکونی 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 پروکسی را دوباره استفاده کنید.
-
مدیریت پیشرفته خطا و تلاش مجدد
وباسکرپینگ در مقیاس بزرگ نیازمند مدیریت خطای قوی است. ازtenacityبرای تلاش مجدد استفاده کنید:pip install tenacityfrom 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) را مدیریت کنید و در صورت شکست پروکسی را تغییر دهید.
-
اسکرپینگ ناهمزمان با 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()) -
مهاجرت از Dataimpulse
اگر کد موجودی دارید که از Dataimpulse استفاده میکند، URL پروکسی و اطلاعات احراز هویت را بهروزرسانی کنید. معمولاً قالب مشابه است، اما مطمئن شوید که از SOCKS5 استفاده میکنید. نقطه پایانی Dataimpulse را با Smartproxy جایگزین کنید. بهطور کامل تست کنید تا مطمئن شوید مهاجرت کار میکند.
عیبیابی
- احراز هویت ناموفق: نام کاربری و رمز عبور را بررسی کنید. مطمئن شوید که از پورت صحیح برای SOCKS5 استفاده میکنید.
- اتمام زمان اتصال: بررسی کنید که فایروال شما اتصالات خروجی روی پورت SOCKS5 را مجاز میکند.
- نشت DNS: از
socks5h://بهجایsocks5://استفاده کنید تا DNS از طریق پروکسی حل شود. - سرعت پایین: یک مکان پروکسی دیگر را امتحان کنید یا برای سرعت بیشتر به پروکسیهای دیتاسنتر سوئیچ کنید.
- IP مسدود شده: به یک IP جدید تغییر دهید یا از نوع پروکسی دیگری استفاده کنید.
خلاصه
مهاجرت از Dataimpulse به Smartproxy روی لینوکس ساده است. با دنبال کردن این مراحل، میتوانید پروکسیهای SOCKS5 را راهاندازی کنید، چرخش را پیادهسازی کنید و خطاها را برای وباسکرپینگ پیشرفته مدیریت کنید. استخر IP بزرگ Smartproxy و داشبورد کاربرپسند آن، آن را به گزینهای قابلاعتماد تبدیل میکند. همیشه شرایط استفاده و robots.txt وبسایتهای هدف را رعایت کنید.