بازگشت به وبلاگ

چرا برخی وب‌سایت‌ها از طریق پروکسی باز نمی‌شوند: راهنمای کامل

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

📅۱۷ آذر ۱۴۰۴
```html

چرا برخی سایت‌ها از طریق پروکسی باز نمی‌شوند: راهنمای کامل

پروکسی ابزار ضروری برای وب‌اسکریپینگ، تست‌کردن، خودکارسازی SMM و دور زدن محدودیت‌های جغرافیایی است. اما گاهی به جای محتوا، خطای 403، timeout یا صفحه خالی می‌بینید. بیایید بفهمیم چرا این اتفاق می‌افتد و چگونه آن را حل کنیم.

1. تشخیص و مسدود کردن پروکسی

این رایج‌ترین دلیل است. برنامه‌های وب مدرن از سرویس‌های خاصی برای تشخیص ترافیک پروکسی استفاده می‌کنند. سایت تجزیه می‌کند:

  • ASN (شماره سیستم خودمختار) — بسیاری از ارائه‌دهندگان پروکسی از دامنه‌های ASN شناخته‌شده‌ای استفاده می‌کنند که به راحتی می‌توان آن‌ها را مسدود کرد
  • رفتار کاربر — تغییر سریع بین IP‌ها، عدم وجود کوکی‌ها، الگوهای کلیک عجیب
  • اثرانگشت TLS — مرورگرها داده‌های منحصر به فردی درباره نسخه SSL، افزونه‌ها و ترتیب رمزگذاری ارسال می‌کنند
  • اثرانگشت WebGL و Canvas — حتی JavaScript می‌تواند استفاده از پروکسی را فاش کند
مثال: سایت می‌بیند که در 10 ثانیه از IP شما 100 صفحه محصول بارگذاری شده است. این واضح است که انسان نیست — مسدود کردن اجتناب‌ناپذیر است.

2. محدودیت‌های جغرافیایی

سایت جغرافیای IP را بررسی می‌کند و اگر با انتظارات مطابقت نداشته باشد، دسترسی را رد می‌کند:

  • بانک‌ها و سرویس‌های مالی دسترسی از کشورهای معینی را مسدود می‌کنند
  • سرویس‌های استریمینگ (Netflix، YouTube) محتوا را بر اساس منطقه محدود می‌کنند
  • سایت‌های دولتی ممکن است از خارج از کشور غیرقابل دسترسی باشند
  • پلتفرم‌های تجارت الکترونیکی زبان و ارز را بر اساس IP تغییر می‌دهند

اگر از پروکسی مرکز داده از ایالات متحده استفاده می‌کنید، اما سایت فقط از اروپا دسترسی را می‌پذیرد — خطای 403 یا تغییر مسیر دریافت خواهید کرد.

3. سمعه آدرس IP

هر IP دارای تاریخی است. اگر آدرس قبلاً برای اسپم، پارسینگ یا حملات DDoS استفاده شده باشد، سایت‌ها آن را مسدود می‌کنند:

  • فهرست‌های سیاه — IP در پایگاه‌های Project Honey Pot، Spamhaus، AbuseIPDB قرار می‌گیرد
  • امتیاز پایین در سرویس‌هایی مانند IPQualityScore — سایت‌ها از چنین سرویس‌هایی برای فیلتر کردن استفاده می‌کنند
  • نقض‌های قبلی — اگر IP قبلاً در سایت مسدود شده باشد، ممکن است برای مدت طولانی در فهرست سیاه باقی بماند

می‌توانید سمعه IP را در abuseipdb.com یا ipqualityscore.com بررسی کنید.

4. سرصحفه‌های نادرست و پیکربندی

اغلب سایت‌ها درخواست‌ها را به دلیل عدم وجود یا نادرستی سرصحفه‌های HTTP مسدود می‌کنند:

سرصحفه مشکل
User-Agent وجود ندارد یا عجیب است (مانند Python-requests/2.25.1)
Referer با منطق ناوبری در سایت مطابقت ندارد
Accept-Language وجود ندارد یا با جغرافیای IP مطابقت ندارد
X-Forwarded-For استفاده از پروکسی یا VPN را فاش می‌کند

راه‌حل: از سرصحفه‌های واقعی مرورگر استفاده کنید. در اینجا مثالی در Python آمده است:

import requests

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'Accept-Language': 'en-US,en;q=0.5',
    'Accept-Encoding': 'gzip, deflate',
    'Connection': 'keep-alive',
    'Upgrade-Insecure-Requests': '1'
}

proxy = 'http://your-proxy:port'
response = requests.get('https://example.com', 
                       headers=headers, 
                       proxies={'http': proxy, 'https': proxy})

5. مشکلات پروتکل و پورت

برخی پروکسی‌ها فقط HTTP را پشتیبانی می‌کنند، اما شما سعی می‌کنید به سایت HTTPS دسترسی پیدا کنید. یا پورت در سطح شبکه مسدود است:

  • HTTP در مقابل HTTPS — مطمئن شوید که پروکسی هر دو پروتکل را پشتیبانی می‌کند
  • پورت‌ها — استاندارد 80 (HTTP) و 443 (HTTPS)، اما برخی سایت‌ها از پورت‌های غیرمعیاری استفاده می‌کنند
  • SOCKS در مقابل HTTP — انواع مختلف پروکسی محدودیت‌های متفاوتی دارند
نکته: اگر سایت از طریق پروکسی HTTP باز نمی‌شود، SOCKS5 را امتحان کنید. در سطح پایین‌تری کار می‌کند و برخی محدودیت‌ها را بهتر دور می‌زند.

6. محدودیت نرخ و حفاظت DDoS

اگر درخواست‌های زیادی را پشت سر هم انجام دهید، حتی از طریق IP‌های مختلف، سایت می‌تواند شما را مسدود کند:

  • 429 درخواست‌های بیش از حد — شما از حد مجاز درخواست‌ها تجاوز کردید
  • مسدود کردن موقت — معمولاً برای 1-24 ساعت
  • مسدود کردن دائمی — اگر به حمله به سرور ادامه دهید
  • Cloudflare، WAF — سیستم‌های حفاظتی تخصصی که ربات‌ها را از انسان‌ها متمایز می‌کنند

7. راه‌حل‌های عملی

✓ از پروکسی‌های مسکونی به جای مراکز داده استفاده کنید

پروکسی‌های مسکونی آدرس‌های IP واقعی کاربران خانگی هستند. تشخیص آن‌ها بسیار دشوارتر است، زیرا مانند ترافیک عادی به نظر می‌رسند. مراکز داده اغلب به دلیل شناخته‌شدن ASN آن‌ها مسدود می‌شوند.

✓ تاخیر بین درخواست‌ها اضافه کنید

import time
import random

for url in urls:
    response = requests.get(url, headers=headers, proxies=proxies)
    # تاخیر تصادفی از 1 تا 5 ثانیه
    time.sleep(random.uniform(1, 5))

✓ پروکسی‌ها را بچرخانید

یک IP را برای تمام درخواست‌ها استفاده نکنید. بین آدرس‌های مختلف تغییر کنید:

proxies_list = [
    'http://proxy1:port',
    'http://proxy2:port',
    'http://proxy3:port',
]

for i, url in enumerate(urls):
    proxy = proxies_list[i % len(proxies_list)]
    response = requests.get(url, proxies={'http': proxy, 'https': proxy})

✓ IP را قبل از استفاده بررسی کنید

مطمئن شوید که IP در فهرست سیاه نیست:

import requests

def check_ip_reputation(ip):
    response = requests.get(f'https://ipqualityscore.com/api/json/ip/{ip}')
    data = response.json()
    return data.get('fraud_score', 0)

# فقط از IP‌هایی با امتیاز پایین استفاده کنید
if check_ip_reputation(proxy_ip) < 75:
    # IP ایمن است
    pass

✓ از خودکارسازی مرورگر برای سایت‌های پیچیده استفاده کنید

اگر سایت از JavaScript و حفاظت پیچیده استفاده می‌کند، درخواست‌های HTTP معمولی کمک نخواهند کرد. از Selenium یا Puppeteer استفاده کنید:

from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument('--proxy-server=http://proxy:port')

driver = webdriver.Chrome(options=options)
driver.get('https://example.com')

✓ برای سایت‌های موبایل از پروکسی‌های موبایل استفاده کنید

پروکسی‌های موبایل از طریق شبکه‌های موبایل واقعی (4G/5G) کار می‌کنند. برای برنامه‌های موبایل قابل اعتمادتر هستند و اغلب توسط سایت‌هایی که دسترسی رایانه را محدود می‌کنند مسدود نمی‌شوند.

✓ خطاها را به درستی مدیریت کنید

try:
    response = requests.get(url, proxies=proxies, timeout=10)
    response.raise_for_status()
except requests.exceptions.ProxyError:
    print("خطای پروکسی — IP ممکن است مسدود شده باشد")
except requests.exceptions.Timeout:
    print("Timeout — سرور پاسخ نمی‌دهد")
except requests.exceptions.HTTPError as e:
    if response.status_code == 403:
        print("دسترسی ممنوع — پروکسی دیگری را امتحان کنید")

خلاصه

سایت‌ها پروکسی‌ها را به دلایل مختلفی مسدود می‌کنند: از تشخیص الگوهای ترافیک تا سمعه ساده IP. راه‌حل جهانی وجود ندارد، اما ترکیب پروکسی‌های خوب، سرصحفه‌های صحیح، تاخیر و چرخش IP اکثر مشکلات را حل می‌کند.

برای پارسینگ و خودکارسازی توصیه می‌شود از پروکسی‌های مسکونی با کیفیت استفاده کنید، که مانند ترافیک واقعی کاربران خانگی به نظر می‌رسند. آن‌ها گران‌تر از مراکز داده هستند، اما قابل‌اعتمادتر کار می‌کنند و به ندرت مسدود می‌شوند.

```