Skip to content
Beginner / 3 min read

نحوه استفاده از پروکسی‌های مسکونی SOCKS5 Dataimpulse در Termux روی اندروید برای وب اسکرپینگ

پروکسی‌های مسکونی SOCKS5 Dataimpulse را در Termux روی اندروید راه‌اندازی کنید، اتصال را با curl و Python تست کنید، و درخواست‌های وب اسکرپینگ مناسب مبتدی‌ها را اجرا کنید.

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

مرور کلی

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

پیش از شروع

  • یک حساب Dataimpulse. Dataimpulse ارائه‌دهنده پیشنهادی برای این آموزش است.
  • اطلاعات احراز هویت پروکسی SOCKS5 از داشبورد Dataimpulse: هاست، پورت، نام کاربری و رمز عبور.
  • یک دستگاه اندروید با Termux نصب‌شده. Termux را از F-Droid یا انتشارهای رسمی GitHub نصب کنید، نه از یک نسخه قدیمی در فروشگاه اپ.
  • اتصال اینترنت پایدار و آشنایی پایه با دستورات ترمینال.
  • یک سایت هدف که به اسکرپینگ شما اجازه می‌دهد. robots.txt، شرایط و محدودیت‌های نرخ آن را بررسی کنید.

مراحل

  1. Termux را به‌روزرسانی کنید و ابزارهای خط فرمان را نصب کنید.
pkg update && pkg upgrade -y
pkg install python curl -y
  1. بسته‌های Python را برای پشتیبانی SOCKS5 و تجزیه HTML نصب کنید.
pip install --upgrade pip
pip install 'requests[socks]' beautifulsoup4
  1. اطلاعات احراز هویت SOCKS5 Dataimpulse خود را به‌عنوان متغیرهای محیطی تنظیم کنید.
export DP_HOST='your-dataimpulse-socks5-host'
export DP_PORT='your-dataimpulse-socks5-port'
export DP_USER='your-dataimpulse-username'
export DP_PASS='your-dataimpulse-password'

از همان هاست، پورت، نام کاربری و رمز عبوری که در داشبورد Dataimpulse نمایش داده می‌شود استفاده کنید. اگر رمز عبور شما شامل کاراکترهای خاص شل است، مقادیر را در نقل‌قول تک قرار دهید یا آن‌ها را از یک مدیر اسرار (secrets manager) تنظیم کنید. 4. پروکسی SOCKS5 را با curl تست کنید.

curl --socks5-hostname $DP_HOST:$DP_PORT --proxy-user $DP_USER:$DP_PASS --max-time 30 'https://api.ipify.org?format=json'

پاسخ موفق یک شیء JSON با آدرس IP که مقصد می‌بیند برمی‌گرداند. دستور را چند بار اجرا کنید تا ببینید آیا IP خروجی تغییر می‌کند. 5. تجزیه DNS از طریق پروکسی را تست کنید.

curl --socks5-hostname $DP_HOST:$DP_PORT --proxy-user $DP_USER:$DP_PASS --max-time 30 'https://example.com'

از --socks5-hostname استفاده کنید تا DNS توسط پروکسی حل شود. --socks5 معمولی ممکن است روی برخی سیستم‌ها DNS را به‌صورت محلی حل کند، که می‌تواند باعث لو رفتن درخواست‌های DNS شود. 6. یک اسکریپت درخواست Python حداقلی بسازید.

import os
import requests

host = os.environ['DP_HOST']
port = os.environ['DP_PORT']
user = os.environ['DP_USER']
password = os.environ['DP_PASS']

proxy_url = f'socks5h://{user}:{password}@{host}:{port}'
proxies = {'http': proxy_url, 'https': proxy_url}

response = requests.get(
    'https://api.ipify.org?format=json',
    proxies=proxies,
    timeout=30,
)
response.raise_for_status()
print(response.json())

آن را با نام first_request.py ذخیره کنید و اجرا کنید:

python first_request.py
  1. یک صفحه ساده را اسکرپ کنید و عنوان را تجزیه کنید.
import os
import requests
from bs4 import BeautifulSoup

host = os.environ['DP_HOST']
port = os.environ['DP_PORT']
user = os.environ['DP_USER']
password = os.environ['DP_PASS']

proxy_url = f'socks5h://{user}:{password}@{host}:{port}'
proxies = {'http': proxy_url, 'https': proxy_url}

response = requests.get(
    'https://example.com',
    proxies=proxies,
    timeout=30,
    headers={'User-Agent': 'Mozilla/5.0 (compatible; ProxyScoutTutorial/1.0)'},
)
response.raise_for_status()

soup = BeautifulSoup(response.text, 'html.parser')
print(soup.title.string)
  1. برای کارهای اسکرپینگ بزرگ، تلاش مجدد اضافه کنید.
import os
import time
import requests

host = os.environ['DP_HOST']
port = os.environ['DP_PORT']
user = os.environ['DP_USER']
password = os.environ['DP_PASS']
proxy_url = f'socks5h://{user}:{password}@{host}:{port}'
proxies = {'http': proxy_url, 'https': proxy_url}

urls = ['https://example.com', 'https://example.org']

for url in urls:
    for attempt in range(3):
        try:
            response = requests.get(url, proxies=proxies, timeout=30)
            response.raise_for_status()
            print(url, response.status_code)
            break
        except requests.RequestException as error:
            print(f'Attempt {attempt + 1} failed for {url}: {error}')
            time.sleep(2 ** attempt)
  1. چرخش (rotation) را از پوسته Termux بررسی کنید.
for i in 1 2 3 4 5; do
  curl -s --socks5-hostname $DP_HOST:$DP_PORT --proxy-user $DP_USER:$DP_PASS 'https://api.ipify.org?format=json'
  echo
done

اگر هر درخواست همان IP را برگرداند، تأیید کنید که از endpoint چرخشی و تنظیمات چرخش موجود در داشبورد Dataimpulse استفاده می‌کنید. اگر راه‌اندازی شما از نشست‌های چسبنده (sticky sessions) استفاده می‌کند، ممکن است همان IP برای مدتی عمدی باشد.

عیب‌یابی

  • خطای InvalidSchema: Missing dependencies for SOCKS support در Python: بسته اضافی SOCKS را با pip install 'requests[socks]' نصب کنید.
  • خطای curl: (97) SOCKS5 proxy rejected connection: هاست، پورت، نام کاربری و رمز عبور Dataimpulse را بررسی کنید. مطمئن شوید پورت SOCKS5 را کپی کرده‌اید، نه یک پورت HTTP.
  • خطای 407 Proxy Authentication Required: اطلاعات احراز هویت را دوباره بررسی کنید. اگر رمز عبور شما شامل کاراکترهای خاص است، آن را از یک متغیر محیطی نقل‌قول‌شده تنظیم کنید یا هنگام ساخت دستی URL پروکسی آن را URL-encode کنید.
  • خطاهای DNS یا IPهای محلی غیرمنتظره: از socks5h:// در Python و --socks5-hostname در curl استفاده کنید.
  • درخواست‌های کند یا timeout در اندروید: --max-time یا timeout پایتون را افزایش دهید، همزمانی را کاهش دهید، و بهینه‌سازی باتری را برای Termux غیرفعال کنید.
  • همان IP خروجی در هر درخواست: رفتار چرخش را در داشبورد Dataimpulse بررسی کنید و تأیید کنید که از endpoint نشست چسبنده استفاده نمی‌کنید.
  • اتصال در curl کار می‌کند اما در Python نه: تأیید کنید که requests[socks] در همان محیط Python که اسکریپت شما را اجرا می‌کند نصب شده است.

خلاصه

شما پروکسی‌های مسکونی SOCKS5 Dataimpulse را در Termux روی اندروید راه‌اندازی کردید، اتصال را با curl تست کردید، درخواست‌های احراز هویت‌شده Python انجام دادید، یک صفحه را تجزیه کردید و تلاش مجدد اضافه کردید. Dataimpulse یک ارائه‌دهنده پیشنهادی پرداخت به‌ازای مصرف برای پروکسی‌های مسکونی و موبایلی با پشتیبانی HTTP و SOCKS5 است. از پروکسی‌ها مسئولانه استفاده کنید، شرایط سایت هدف را رعایت کنید، و با رشد مقیاس، مصرف پهنای باند خود را پایش کنید.