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

چگونه از ضد ربات آمازون عبور کنیم و قیمت‌های واقعی رقبای خود را دریافت کنیم: راهنمای کامل

آمازون از یک سیستم ضد ربات قوی استفاده می‌کند که جمع‌آوری خودکار داده‌ها را مسدود می‌کند. روش‌های دور زدن این حفاظت برای نظارت بر قیمت‌های رقباء را بررسی می‌کنیم.

📅۸ اسفند ۱۴۰۴
```html

آمازون — یکی از محافظت‌شده‌ترین بازارهای آنلاین در جهان است. سیستم ضد ربات آن 90% تلاش‌ها برای جمع‌آوری خودکار داده‌ها درباره قیمت‌ها، موجودی‌ها و موقعیت‌های کالاها را مسدود می‌کند. برای فروشندگان و بازاریابان، این یک مشکل بحرانی است: بدون داده‌های به‌روز رقبا، اصلاح استراتژی قیمت‌گذاری و حفظ سودآوری غیرممکن است.

در این راهنما، مکانیزم‌های فنی حفاظت آمازون را بررسی می‌کنیم، روش‌های معتبر دور زدن ضد ربات را نشان می‌دهیم و سیستمی برای نظارت بر قیمت‌ها تنظیم می‌کنیم که به‌طور پایدار برای ماه‌ها بدون مسدود شدن کار می‌کند.

چرا آمازون پارسینگ را مسدود می‌کند: مکانیزم‌های حفاظت

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

اجزای اصلی حفاظت آمازون:

  • AWS WAF (فایروال برنامه وب) — ترافیک ورودی را تجزیه و تحلیل کرده و آدرس‌های IP مشکوک را در سطح شبکه مسدود می‌کند. فراوانی درخواست‌ها، جغرافیا و شهرت IP را ردیابی می‌کند.
  • Cloudfront CDN — شبکه توزیع محتوای توزیع‌شده با الگوریتم‌های فیلتر کردن ربات‌ها. هدرهای درخواست، کوکی‌ها و اثر انگشت‌های TLS مرورگر را بررسی می‌کند.
  • سیستم مدیریت ربات‌ها — از یادگیری ماشین برای تجزیه و تحلیل رفتار کاربران استفاده می‌کند. حرکات ماوس، سرعت اسکرول و الگوهای کلیک را ردیابی می‌کند.
  • CAPTCHA و صفحات چالش — در صورت فعالیت مشکوک نمایش داده می‌شوند. برای ادامه، حل معما یا وارد کردن CAPTCHA را می‌طلبند.
  • محدودیت نرخ — محدودیت‌های سخت بر تعداد درخواست‌ها از یک IP: معمولاً 10-20 درخواست در دقیقه برای کاربران غیر وارد شده.

همه این سیستم‌ها به‌صورت هماهنگ کار می‌کنند و داده‌ها را تبادل می‌کنند. اگر حتی یکی از آن‌ها ربات را مشکوک بداند — IP به مدت 24-48 ساعت در لیست سیاه قرار می‌گیرد و گاهی اوقات برای همیشه.

مهم: آمازون قیمت‌های متفاوتی را برای مناطق و انواع کاربران مختلف نشان می‌دهد. مسدود شدن فقط به معنای عدم دسترسی نیست، بلکه به معنای دریافت داده‌های غیرقابل اعتماد است که برای نظارت بر رقبا بحرانی است.

چگونه آمازون ربات‌ها را شناسایی می‌کند: 7 سیگنال اصلی

سیستم ضد ربات آمازون ده‌ها پارامتر هر درخواست را تجزیه و تحلیل می‌کند. در اینجا سیگنال‌های کلیدی که به شناسایی اتوماسیون کمک می‌کنند، آمده است:

1. شهرت آدرس IP

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

چه چیزی بررسی می‌شود: تعلق به دیتاسنترهای معروف (AWS، Google Cloud، DigitalOcean)، وجود در پایگاه‌های پروکسی عمومی، تعداد درخواست‌ها در ساعت گذشته، جغرافیا (درخواست‌ها از کشورهای غیرمنتظره).

2. User-Agent و هدرهای HTTP

بسیاری از پارسرها از User-Agent‌های استاندارد کتابخانه‌ها استفاده می‌کنند: python-requests/2.28.0 یا اصلاً این هدر را ارسال نمی‌کنند. آمازون بلافاصله چنین درخواست‌هایی را شناسایی می‌کند.

نشانه‌های مشکوک: عدم وجود هدرهای Accept-Language، Accept-Encoding؛ عدم تطابق User-Agent و سایر هدرها (به عنوان مثال، User-Agent مرورگر Chrome، اما هدرها مانند Firefox)؛ عدم وجود Referer هنگام переход بین صفحات؛ نسخه‌های قدیمی مرورگرها.

3. اثر انگشت‌های TLS/SSL

هنگام برقراری اتصال HTTPS، مرورگر مجموعه‌ای از پارامترهای رمزگذاری (cipher suites، extensions، نسخه TLS) را ارسال می‌کند. این مجموعه برای هر مرورگر منحصر به فرد است. کتابخانه‌هایی مانند requests یا curl اثر انگشت‌هایی دارند که با مرورگرهای واقعی متفاوت است — آمازون این را می‌بیند.

4. JavaScript و اثر انگشت‌گیری Canvas

آمازون کد JavaScript را بارگذاری می‌کند که اطلاعاتی درباره مرورگر جمع‌آوری می‌کند: وضوح صفحه، فونت‌های نصب‌شده، ویژگی‌های پشتیبانی‌شده WebGL، پارامترهای Canvas. کلاینت‌های HTTP ساده JavaScript را اجرا نمی‌کنند و به سرعت خود را نشان می‌دهند.

5. کوکی‌ها و نشست‌ها

آمازون در اولین بازدید تعداد زیادی کوکی تنظیم می‌کند: session-id، ubid-main، x-main و دیگران. عدم وجود این کوکی‌ها یا مقادیر نادرست آن‌ها — نشانه‌ای از ربات است. همچنین سیستم زمان عمر نشست را ردیابی می‌کند: یک کاربر واقعی 100 درخواست در 30 ثانیه نمی‌فرستد.

6. الگوهای رفتاری

یک انسان واقعی صفحه اصلی را باز می‌کند، کالا را جستجو می‌کند، به دسته‌ها می‌رود، توضیحات را می‌خواند و به عقب برمی‌گردد. ربات بلافاصله URL‌های خاص کالاها را در یک توالی ایده‌آل بدون تأخیر درخواست می‌کند.

الگوهای مشکوک: درخواست‌ها فقط به صفحات کالاها بدون بازدید از صفحه اصلی؛ توالی ایده‌آل URL (product1، product2، product3...); عدم درخواست به استاتیک (تصاویر، CSS، JS)؛ فواصل یکسان بین درخواست‌ها.

7. فراوانی درخواست‌ها

حتی با شبیه‌سازی ایده‌آل مرورگر، فراوانی بسیار بالا درخواست‌ها ربات را نشان می‌دهد. آمازون تعداد درخواست‌ها از IP را در دقیقه، ساعت و روز ردیابی می‌کند. تجاوز از محدودیت‌ها (معمولاً 10-20 درخواست/دقیقه برای مهمان‌ها) منجر به مسدود شدن می‌شود.

انتخاب پروکسی برای دور زدن ضد ربات: پروکسی‌های خانگی در مقابل دیتاسنترها

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

نوع پروکسی سطح اعتماد آمازون سرعت کاربرد
پروکسی‌های خانگی بسیار بالا (IP‌های واقعی کاربران خانگی) متوسط (50-150 میلی‌ثانیه) پارسینگ اصلی، حجم‌های بالا
موبایل حداکثر (IP‌های اپراتورهای موبایل) پایین (200-500 میلی‌ثانیه) دور زدن مسدودیت‌های سخت، حساب‌ها
دیتاسنترها پایین (آمازون این IP‌ها را می‌شناسد) بسیار بالا (10-30 میلی‌ثانیه) آزمایش، وظایف یک‌باره

پروکسی‌های خانگی — انتخاب بهینه

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

مزایای پروکسی‌های خانگی برای آمازون:

  • IP متعلق به ارائه‌دهندگان اینترنت (Comcast، AT&T، Verizon در ایالات متحده) و نه دیتاسنترها
  • درصد پایین مسدودیت‌ها: کمتر از 2% با تنظیم صحیح چرخش
  • امکان انتخاب جغرافیا: ایالات متحده، بریتانیا، آلمان و کشورهای دیگر برای دریافت قیمت‌های محلی
  • پشتیبانی از نشست‌های چسبنده: یک IP می‌تواند به مدت 10-30 دقیقه برای شبیه‌سازی کاربر واقعی استفاده شود

پارامترهای مهم هنگام انتخاب پروکسی‌های خانگی:

  • اندازه استخر IP: حداقل 1 میلیون آدرس برای چرخش مؤثر
  • جغرافیا: کشوری را انتخاب کنید که آمازون در آن فعالیت می‌کند (ایالات متحده، بریتانیا، آلمان، ژاپن و غیره)
  • نوع چرخش: پشتیبانی از نشست‌های چسبنده با زمان عمر 10-30 دقیقه
  • پروتکل: HTTP/HTTPS و SOCKS5 برای سازگاری با ابزارهای مختلف

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

پروکسی‌های موبایل از IP‌های اپراتورهای موبایل (4G/5G) استفاده می‌کنند. آمازون تقریباً هرگز این آدرس‌ها را مسدود نمی‌کند، زیرا ممکن است هزاران کاربر واقعی به دلیل فناوری CGNAT پشت یک IP قرار داشته باشند.

کی پروکسی‌های موبایل را انتخاب کنیم:

  • کار با حساب‌های فروشندگان آمازون (Seller Central) — برای آن‌ها ثبات IP حیاتی است
  • دور زدن مسدودیت‌های سخت پس از مسدود شدن IP‌های خانگی
  • پارسینگ با احراز هویت (به عنوان مثال، قیمت‌ها برای مشترکین Prime)
  • حجم‌های کوچک داده (تا 1000 کالا در روز) — پروکسی‌های موبایل گران‌تر هستند

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

چرا دیتاسنترها مناسب نیستند

پروکسی‌های دیتاسنتر از IP‌های سرورهای AWS، Google Cloud، DigitalOcean استفاده می‌کنند. آمازون بلافاصله این آدرس‌ها را شناسایی می‌کند — آن‌ها در پایگاه‌های ASN (سیستم‌های مستقل) دیتاسنترها قرار دارند.

مشکلات استفاده از دیتاسنترها: مسدود شدن پس از 5-10 درخواست؛ CAPTCHA‌های مداوم؛ نمایش قیمت‌های قدیمی یا صفحات خالی؛ مسدود شدن دائمی IP پس از چندین تلاش.

تنها موردی که می‌توان از دیتاسنترها استفاده کرد — آزمایش پارسر بر روی تعداد کمی از کالاها (10-20 عدد) قبل از راه‌اندازی بر روی پروکسی‌های خانگی است.

استراتژی چرخش آدرس‌های IP: فراوانی و جغرافیا

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

فراوانی بهینه چرخش

دو رویکرد برای چرخش وجود دارد: پس از هر درخواست (پروکسی‌های چرخشی) و با زمان عمر ثابت (نشست‌های چسبنده). برای آمازون، گزینه دوم مؤثرتر است.

استراتژی پیشنهادی نشست‌های چسبنده:

  • زمان عمر IP: 10-15 دقیقه — تعادل بهینه بین شبیه‌سازی کاربر واقعی و خطر مسدود شدن
  • تعداد درخواست‌ها بر روی IP: حداکثر 15-20 درخواست در زمان عمر نشست
  • تأخیر بین درخواست‌ها: 3-7 ثانیه (تصادفی، نه ثابت!)
  • شبیه‌سازی رفتار: اولین درخواست — صفحه اصلی یا دسته، سپس — صفحات کالاها

مثال سناریو برای یک IP: باز کردن صفحه اصلی Amazon.com → انتظار 5 ثانیه → باز کردن دسته الکترونیک → انتظار 4 ثانیه → باز کردن کالا 1 → انتظار 6 ثانیه → باز کردن کالا 2 → ... → پس از 15 درخواست، IP را تغییر دهید.

نکته برای بارهای بالا:

اگر نیاز به پارسینگ هزاران کالا در ساعت دارید، از استخر 50-100 نشست همزمان با IP‌های مختلف استفاده کنید. هر نشست 10-15 درخواست با تأخیر انجام می‌دهد و سپس IP را تغییر می‌دهد. این به 500-1500 درخواست در ساعت بدون مسدود شدن منجر می‌شود.

توزیع جغرافیایی

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

تطابق بازارها و جغرافیای پروکسی:

  • Amazon.com (ایالات متحده): از پروکسی‌های ایالات متحده استفاده کنید، ترجیحاً از ایالت‌های مختلف برای تنوع
  • Amazon.co.uk (بریتانیا): پروکسی‌های از بریتانیا
  • Amazon.de (آلمان): پروکسی‌های از آلمان
  • Amazon.co.jp (ژاپن): پروکسی‌های از ژاپن

مهم است: از پروکسی‌های کشورهای دیگر برای پارسینگ یک بازار خاص استفاده نکنید. به عنوان مثال، درخواست‌ها به Amazon.com با IP از هند یا روسیه مشکوک به نظر می‌رسند و اغلب CAPTCHA دریافت می‌کنند.

از استفاده مجدد IP خودداری کنید

حتی اگر IP مسدود نشده باشد، از آن در مدت 2-3 ساعت دوباره استفاده نکنید. آمازون تاریخچه فعالیت هر آدرس را به خاطر می‌سپارد. اگر یک IP هر 15 دقیقه در طول روز ظاهر شود — این نشانه واضحی از اتوماسیون است.

قانون چرخش: حداقل استخر برای عملکرد پایدار — 500-1000 IP منحصر به فرد. این تنوع کافی را فراهم می‌کند تا هر آدرس بیشتر از 1-2 بار در روز استفاده نشود.

شبیه‌سازی مرورگر واقعی: هدرها و اثر انگشت‌ها

حتی با پروکسی‌های خانگی و چرخش صحیح، پارسر مسدود خواهد شد اگر نتواند مرورگر واقعی را شبیه‌سازی کند. آمازون ده‌ها پارامتر HTTP درخواست‌ها و محیط JavaScript را بررسی می‌کند.

هدرهای HTTP صحیح

کلاینت‌های HTTP ساده (requests، curl، wget) حداقل مجموعه‌ای از هدرها را ارسال می‌کنند که بلافاصله ربات را نشان می‌دهد. باید هدرهای مرورگر واقعی را کپی کنید.

هدرهای الزامی برای آمازون:

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.9
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: none
Sec-Fetch-User: ?1
Cache-Control: max-age=0

نکات بحرانی:

  • User-Agent: از نسخه به‌روز Chrome یا Firefox استفاده کنید (هر 2-3 ماه یکبار بررسی کنید). نسخه‌های قدیمی مرورگرها مشکوک هستند.
  • Accept-Language: باید با جغرافیای پروکسی مطابقت داشته باشد (en-US برای ایالات متحده، en-GB برای بریتانیا، de-DE برای آلمان)
  • هدرهای Sec-Fetch-*: در مرورگرهای مدرن ظاهر شده‌اند، عدم وجود آن‌ها نشانه‌ای از کلاینت قدیمی است
  • Referer: هنگام переход بین صفحات حتماً Referer صفحه قبلی را ارسال کنید

اثر انگشت‌گیری TLS و دور زدن آن

آمازون پارامترهای اتصال TLS را تجزیه و تحلیل می‌کند: نسخه پروتکل، مجموعه رمزها، گسترش‌ها. کتابخانه‌های استاندارد (OpenSSL در Python requests) اثر انگشت‌هایی دارند که با مرورگرها متفاوت است.

راه‌حل: از ابزارهایی استفاده کنید که TLS مرورگر را شبیه‌سازی می‌کنند:

  • curl-impersonate: نسخه‌ای از curl که اثر انگشت‌های TLS Chrome و Firefox را کپی می‌کند
  • tls-client (Python): کتابخانه‌ای با پشتیبانی از اثر انگشت‌گیری مرورگر
  • Playwright/Puppeteer: مرورگرهای واقعی در حالت headless — شبیه‌سازی ایده‌آل، اما کندتر

JavaScript و کوکی‌ها

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

اقدامات الزامی:

  • از ابزارهایی با پشتیبانی از JavaScript استفاده کنید: Selenium، Playwright، Puppeteer
  • همه کوکی‌ها را بین درخواست‌ها در یک نشست حفظ کنید
  • قبل از استخراج داده‌ها، منتظر بارگذاری کامل صفحه (رویداد DOMContentLoaded) باشید
  • عملکرد کاربر را شبیه‌سازی کنید: اسکرول، وقفه‌های تصادفی

آمازون کوکی‌های بحرانی را تنظیم می‌کند: session-id، ubid-main، x-main. بدون آن‌ها، شما CAPTCHA یا صفحه خالی دریافت خواهید کرد.

محدودیت‌های درخواست‌ها و تأخیرهای بین آن‌ها

حتی شبیه‌سازی ایده‌آل مرورگر نیز شما را از مسدود شدن نجات نخواهد داد اگر درخواست‌های زیادی ارسال کنید. آمازون به شدت فراوانی درخواست‌ها از یک IP را محدود می‌کند.

محدودیت‌های مستند آمازون

داده‌های رسمی درباره محدودیت‌ها وجود ندارد، اما بر اساس آزمایش‌های جامعه، مقادیر تقریبی شناخته شده است:

نوع کاربر محدودیت درخواست‌ها/دقیقه محدودیت درخواست‌ها/ساعت
کاربر غیر وارد شده 10-15 200-300
خریدار وارد شده 20-30 500-800
API آمازون (رسمی) بدون محدودیت بسته به تعرفه

تجاوز از محدودیت‌ها منجر به CAPTCHA، مسدودیت موقت (1-24 ساعت) یا مسدودیت دائمی IP در صورت نقض‌های سیستماتیک می‌شود.

تأخیرهای بهینه بین درخواست‌ها

فواصل ثابت (به عنوان مثال، دقیقاً 5 ثانیه) ربات را نشان می‌دهد. یک انسان واقعی وقفه‌های با طول‌های مختلف ایجاد می‌کند: توضیحات کالا را می‌خواند، قیمت‌ها را مقایسه می‌کند، حواسش پرت می‌شود.

استراتژی پیشنهادی تأخیرها:

  • تأخیر پایه: 3-7 ثانیه (مقدار تصادفی از دامنه)
  • اولین درخواست در نشست: 5-10 ثانیه (شبیه‌سازی بارگذاری صفحه اصلی)
  • پس از خطا یا CAPTCHA: 30-60 ثانیه قبل از تکرار
  • بین تغییر IP: 2-3 ثانیه برای "تجدید اتصال"

مثال پیاده‌سازی تأخیر تصادفی: sleep(random.uniform(3, 7)) — هر وقفه منحصر به فرد خواهد بود.

توزیع بار بر اساس زمان

پارسینگ هزاران کالا را به‌طور همزمان در 00:00 شروع نکنید. آمازون نوسانات فعالیت را ردیابی می‌کند. وظیفه را در چند ساعت یا تمام روز توزیع کنید.

مثال: نیاز به پارسینگ 5000 کالا دارید. آن را به 10 بسته 500 کالایی تقسیم کنید، هر بسته را با فاصله 1-2 ساعت راه‌اندازی کنید. این مانند فعالیت ارگانیک کاربران مختلف به نظر می‌رسد.

ابزارهای آماده برای پارسینگ آمازون

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

1. Bright Data Web Scraper IDE

ابزار ابری با الگوهای آماده برای آمازون. نیازی به برنامه‌نویسی ندارد — انتخابگرهای داده را از طریق رابط بصری تنظیم می‌کنید. پروکسی‌های داخلی و دور زدن CAPTCHA.

مزایا: از جعبه کار می‌کند، چرخش خودکار IP، پشتیبانی از JavaScript. معایب: گران ($500+ در ماه)، وابستگی به سرویس خارجی.

2. Octoparse

برنامه دسکتاپ برای ویندوز با سازنده بصری پارسرها. نسخه ابری برای راه‌اندازی وظایف 24/7 وجود دارد. از پروکسی‌ها پشتیبانی می‌کند.

تنظیم پروکسی در Octoparse: Settings → Proxy Settings → افزودن لیست پروکسی به فرمت IP:PORT:USER:PASS → فعال کردن چرخش.

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

3. ScrapingBee API

سرویس API برای پارسینگ با دور زدن خودکار حفاظت. URL را ارسال می‌کنید و HTML را دریافت می‌کنید. چرخش پروکسی داخلی و اجرای JavaScript.

مثال استفاده:

curl "https://app.scrapingbee.com/api/v1/?api_key=YOUR_KEY&url=https://www.amazon.com/dp/B08N5WRWNW&render_js=true&premium_proxy=true&country_code=us"

مزایا: ادغام ساده، نیازی به پروکسی‌های خودتان نیست. معایب: هزینه‌ای (از $49/ماه)، محدودیت‌ها در تعداد درخواست‌ها.

4. Playwright + پروکسی‌های خود (برای توسعه‌دهندگان)

اگر برنامه‌نویسی می‌دانید، بهترین گزینه استفاده از Playwright (یا Puppeteer) با پروکسی‌های خانگی است. کنترل کامل بر روی فرآیند و هزینه حداقلی.

مثال تنظیم پروکسی در Playwright (Python):

from playwright.sync_api import sync_playwright
import random
import time

proxy_list = [
    {"server": "http://proxy1.example.com:8080", "username": "user", "password": "pass"},
    {"server": "http://proxy2.example.com:8080", "username": "user", "password": "pass"},
]

with sync_playwright() as p:
    proxy = random.choice(proxy_list)
    browser = p.chromium.launch(proxy=proxy, headless=True)
    context = browser.new_context(
        user_agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
        locale="en-US",
        timezone_id="America/New_York"
    )
    page = context.new_page()
    
    # اولین درخواست - صفحه اصلی
    page.goto("https://www.amazon.com")
    time.sleep(random.uniform(3, 5))
    
    # درخواست کالا
    page.goto("https://www.amazon.com/dp/B08N5WRWNW")
    page.wait_for_load_state("networkidle")
    
    # استخراج داده‌ها
    title = page.locator("#productTitle").inner_text()
    price = page.locator(".a-price-whole").first.inner_text()
    
    print(f"Title: {title}, Price: ${price}")
    
    browser.close()

مزایا: کنترل کامل، ارزان‌تر از سرویس‌های ابری، قابلیت مقیاس‌پذیری. معایب: نیاز به مهارت‌های برنامه‌نویسی، باید CAPTCHA‌ها را خودتان مدیریت کنید.

توصیه‌هایی برای انتخاب ابزار

وضعیت شما ابزار پیشنهادی
نمی‌دانم برنامه‌نویسی کنم، به 100-500 کالا در روز نیاز دارم Octoparse + پروکسی‌های خانگی
نیاز به آزمایش سریع ایده دارم، بودجه دارم ScrapingBee API
برنامه‌نویسی می‌دانم، به هزاران کالا نیاز دارم Playwright/Puppeteer + پروکسی‌های خانگی
بودجه بزرگ، نیاز به حداکثر قابلیت اطمینان Bright Data Web Scraper

چه کاری باید در صورت مسدود شدن انجام داد: تشخیص و راه‌حل‌ها

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

انواع مسدودیت‌ها و نشانه‌های آن‌ها

1. CAPTCHA (کد وضعیت 503 یا ریدایرکت به /errors/validateCaptcha):

  • دلیل: فعالیت مشکوک از IP، اما نه مسدودیت کامل
  • راه‌حل: تغییر IP، افزایش تأخیرهای بین درخواست‌ها، افزودن شبیه‌سازی فعالیت کاربر
  • اتوماسیون: استفاده از خدمات حل CAPTCHA (2Captcha، Anti-Captcha) — اما این باعث کندی پارسینگ می‌شود

2. مسدودیت IP (کد 403 یا صفحه خالی):

  • دلیل: IP به دلیل تجاوز از محدودیت‌ها یا استفاده از دیتاسنترها در لیست سیاه قرار گرفته است
  • راه‌حل: بلافاصله IP را تغییر دهید، نوع پروکسی را بررسی کنید (شاید از دیتاسنترها به جای پروکسی‌های خانگی استفاده می‌شود)
  • مدت زمان: معمولاً 24-48 ساعت، گاهی اوقات برای همیشه

3. "برای بحث در مورد دسترسی خودکار به داده‌های آمازون لطفاً با api-services-support@amazon.com تماس بگیرید":

  • دلیل: آمازون به‌وضوح اتوماسیون را شناسایی کرده و پیشنهاد می‌کند از API رسمی استفاده کنید
  • راه‌حل: شبیه‌سازی مرورگر را بهبود دهید، اثر انگشت TLS را بررسی کنید، فراوانی درخواست‌ها را دو برابر کاهش دهید

چک‌لیست تشخیص مشکلات

اگر مسدودیت‌ها دریافت می‌کنید، به ترتیب بررسی کنید:

  1. نوع پروکسی: اطمینان حاصل کنید که از پروکسی‌های خانگی استفاده می‌کنید و نه دیتاسنترها. می‌توانید این را در whoer.net بررسی کنید
  2. جغرافیا: IP باید از همان کشور باشد که بازار هدف است (ایالات متحده برای .com، بریتانیا برای .co.uk)
  3. User-Agent: نسخه به‌روز Chrome/Firefox (نه بیشتر از 3-4 ماه)
  4. کوکی‌ها: آیا بین درخواست‌ها در یک نشست حفظ می‌شوند
  5. JavaScript: آیا اجرا می‌شود (اگر از Playwright/Puppeteer استفاده می‌کنید — باید اجرا شود)
  6. فراوانی درخواست‌ها: حداکثر 10-15 در دقیقه از یک IP
  7. تأخیرها: تصادفی، نه ثابت
  8. چرخش IP: هر آدرس نباید بیشتر از 1 بار در 2-3 ساعت استفاده شود

اقدامات فوری در صورت مسدودیت‌های انبوه

اگر بیشتر درخواست‌ها مسدود شده‌اند (بیش از 30%):

  • پارسینگ را به مدت 2-3 ساعت متوقف کنید — به آمازون اجازه دهید "فعالیت شما را فراموش کند"
  • پروویدر پروکسی را تغییر دهید — ممکن است استخر IP قبلاً به خطر افتاده باشد
  • بار را 3-5 برابر کاهش دهید — به جای 100 درخواست در ساعت، 20-30 درخواست انجام دهید
  • به پروکسی‌های موبایل سوئیچ کنید — آن‌ها تقریباً مسدود نمی‌شوند، هرچند که گران‌تر هستند
  • شبیه‌سازی انسان را بیشتر کنید: انتقال‌های تصادفی بین دسته‌ها، جستجوی کالاها از طریق نوار جستجو، نه URL‌های مستقیم

توجه: اگر IP شما به‌طور دائمی مسدود شده است (مسدودیت بیش از 72 ساعت طول می‌کشد)، سعی نکنید دوباره از آن استفاده کنید. آمازون به ندرت مسدودیت‌های دائمی را لغو می‌کند. به یک استخر جدید پروکسی سوئیچ کنید.

نتیجه‌گیری

دور زدن ضد ربات آمازون یک وظیفه پیچیده است که نیاز به ترکیبی از پروکسی‌های صحیح، شبیه‌سازی دقیق مرورگر و محدودیت‌های منطقی درخواست‌ها دارد. نکات کلیدی برای پارسینگ موفق: استفاده از پروکسی‌های خانگی از همان کشور که بازار هدف است؛ چرخش IP هر 10-15 دقیقه با محدودیت 15-20 درخواست در نشست؛ شبیه‌سازی کامل مرورگر مدرن با هدرهای صحیح و اجرای JavaScript؛ تأخیرهای تصادفی 3-7 ثانیه بین درخواست‌ها.

با رعایت این قوانین، درصد درخواست‌های موفق به 95-98% می‌رسد و مسدودیت‌ها به ندرت اتفاق می‌افتند. مهم‌ترین نکته — عجله نکنید و رفتار کاربر واقعی را شبیه‌سازی کنید، نه اینکه سعی کنید هزاران کالا را در عرض چند دقیقه پارس کنید.

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

```