اگر شما در بازارها فروش میکنید و هر هفته قیمتها را به صورت دستی تغییر میدهید، رقبا که قیمتهایشان هر ساعت بهروز میشود، فروش شما را میگیرند. یک سیستم نظارت شخصی این مشکل را حل میکند، اما بازارها و وبسایتهای رقبا بهطور فعال رباتها، آدرسهای IP و کل زیرشبکههای مراکز داده را مسدود میکنند. در این مقاله، یک طرح کارآمد برای جمعآوری دادهها بدون مسدودیت را بررسی خواهیم کرد — با انتخاب صحیح پروکسی، ابزارها و فرکانس درخواستها.
چرا به یک سیستم نظارت بر رقبا نیاز داریم
سرویسهای آماده نظارت بر قیمت (دهها مورد در بازار وجود دارد) از چند هزار روبل در ماه شروع میشوند و معمولاً تعداد کالاها یا فرکانس بهروزرسانی دادهها را محدود میکنند. اگر شما کاتالوگی با 500–5000 SKU دارید و همزمان در Wildberries، Ozon و Avito فروش میکنید، اشتراک در سه سرویس مختلف از سیستم خودتان گرانتر میشود و به هر حال انعطافپذیری کافی وجود ندارد: نمیتوانید منطق سفارشی برای محاسبه قیمت تنظیم کنید یا نظارت بر وبسایت غیرمعمول رقبا را اضافه کنید.
سیستم خودتان سه مزیت خاص دارد. اولاً، شما فرکانس جمعآوری را کنترل میکنید — میتوانید قیمتهای رقبای اصلی را هر 15 دقیقه بررسی کنید و بقیه را روزی یک بار. ثانیاً، شما نه تنها قیمت، بلکه موجودی، رتبه، تعداد نظرات و موقعیت در نتایج را جمعآوری میکنید — هر پارامتری که برای کسبوکار شما مهم است. ثالثاً، دادهها متعلق به شما باقی میمانند: میتوانید آنها را با تحلیل داخلی حاشیه سود ترکیب کنید و بهطور خودکار قیمت را طوری محاسبه کنید که به ضرر نروید.
فروشندگانی که محاسبه خودکار قیمت را بر اساس نظارت بر رقبا پیادهسازی کردهاند، بهطور میانگین 15-25% نرخ خرید در 10 موقعیت برتر دسته را افزایش میدهند، زیرا قیمت به تغییرات بازار سریعتر از روش دستی واکنش نشان میدهد. این موضوع بهویژه در دستههای با رقابت بالا — لباس، الکترونیک، کالاهای خانگی — حیاتی است.
چرا وبسایتها و بازارها پارسینگ را مسدود میکنند
Wildberries، Ozon و اکثر فروشگاههای اینترنتی از سیستمهای ضد ربات استفاده میکنند که رفتار درخواستها را تحلیل میکنند. اگر از یک IP، 200 درخواست در دقیقه بدون وقفه، بدون هدرهای خاص مرورگر و بدون اجرای JavaScript ارسال شود — بلافاصله بهعنوان ربات علامتگذاری میشود. سپس سیستم یا کپچا را ارائه میدهد، یا دادههای نادرست (قیمتهای جعلی) را ارائه میدهد، یا IP را برای چند ساعت مسدود میکند.
مشکل جداگانه — زیرشبکههای مراکز داده. آدرسهای IP که متعلق به Amazon AWS، Google Cloud، DigitalOcean و ارائهدهندگان مشابه هستند، قبل از اینکه شما اولین درخواست را ارسال کنید، در لیست سیاه اکثر سیستمهای ضد ربات قرار دارند. بازارها ASN (شماره سیستم خودمختار) ارائهدهنده را میبینند و کل دامنه را مسدود میکنند، حتی اگر شما فقط یک درخواست در ساعت ارسال کنید.
به همین دلیل است که پروکسیهای سروری کلاسیک برای نظارت بر بازارها عملکرد ضعیفی دارند: آنها سریع و ارزان هستند، اما در سطح اعتبار IP شناسایی میشوند. برای دور زدن نیاز به IPهایی دارید که مانند کاربران عادی به نظر برسند — این همان ایده کلیدی طرحی است که در ادامه بررسی خواهیم کرد.
معماری سیستم: از چه اجزایی تشکیل شده است
یک سیستم کارآمد نظارت بر رقبا از پنج بلوک تشکیل شده است و هرکدام را میتوان بدون مهارتهای عمیق برنامهنویسی — با استفاده از ابزارهای آماده no-code و low-code — ساخت.
- لیست اهداف — جدولی با لینکهایی به کارتهای محصولات رقبا که باید ردیابی شوند. معمولاً این Google Sheets یا Excel با ستونهایی شامل: URL، بازار، SKU شما، فرکانس مورد نظر بررسی است.
- جمعآورنده دادهها (اسکرپر) — برنامه یا سرویسی که صفحه را باز کرده و قیمت، موجودی و رتبه را جمعآوری میکند. میتواند یک پارسر آماده no-code یا اسکریپتی در Python باشد.
- لایه پروکسی — لایهای که همه درخواستهای اسکرپر از آن عبور میکند تا IP توسط بازار مسدود نشود.
- ذخیرهسازی دادهها — پایگاه داده یا جدولی که نتایج هر بار عبور با برچسب زمان در آن ذخیره میشود.
- منطق واکنش — قوانینی که بر اساس آن سیستم شما را مطلع میکند (در تلگرام، به ایمیل) یا بهطور خودکار قیمت را از طریق API بازار تغییر میدهد.
برای شروع، کافی است ترکیب: Google Sheets + پارسر no-code (برای مثال، مبتنی بر Make/Zapier یا سرویسهای تخصصی پارسینگ) + پروکسی + ربات تلگرام برای اطلاعرسانی. این را میتوان در یک روز بدون نوشتن کد جمعآوری کرد. برای مقیاس بزرگتر (هزاران SKU) به یک اسکریپت Python با کتابخانههای requests/BeautifulSoup یا Selenium نیاز خواهید داشت که طبق برنامهریزی در سرور اجرا میشود.
کدام پروکسیها را برای نظارت انتخاب کنیم
انتخاب پروکسی — 70% موفقیت کل سیستم است. سه نوع را بررسی میکنیم و هرکدام چه زمانی مناسب است.
| نوع پروکسی | چه زمانی استفاده کنیم | ریسک مسدودیت |
|---|---|---|
| پروکسیهای مراکز داده | وبسایتهای ساده بدون ضد ربات، نظارت کمفرکانس بر فروشگاههای اینترنتی کوچک | بالا در بازارها، پایین در وبسایتهای عادی |
| پروکسیهای مسکونی | Wildberries، Ozon، Avito — ابزار اصلی برای نظارت بر بازارها | پایین با چرخش صحیح |
| پروکسیهای موبایل | بررسی نقطهای کارتها با حفاظت سخت از رباتها، دور زدن کپچا در بررسی دستی | حداقل، اما در استفاده گرانتر |
برای نظارت روزانه بر هزاران کارت در Wildberries و Ozon، انتخاب بهینه — پروکسیهای مسکونی هستند، زیرا IPهای آنها متعلق به ارائهدهندگان واقعی خانگی است و در لیست سیاه مراکز داده قرار ندارند. آنها گرانتر از سروریها هستند، اما زمان را در دور زدن مسدودیتها و کپچا صرفهجویی میکنند که در نهایت هزینه مالکیت سیستم را کاهش میدهد.
پروکسیهای موبایل باید در ذخیره نگه داشته شوند برای مواقعی که حتی IP مسکونی نیز کپچا دریافت میکند — برای مثال، در نظارت بر یک دسته خاص از کالاها با حفاظت شدید. سرور اپراتور موبایل از CGNAT (IP مشترک برای هزاران مشترک) استفاده میکند، بنابراین مسدود شدن چنین IPای بر کاربران واقعی تأثیر میگذارد و پلتفرمها بسیار محتاطانه از آن استفاده میکنند.
ابزارهای جمعآوری دادهها
اگر شما برنامهنویس نیستید، چندین راه برای ساخت سیستم بدون کد وجود دارد. اولاً، سرویسهای no-code پارسینگ و نظارت بر قیمت به شما اجازه میدهند URL کارت را مشخص کنید و عنصر قیمت را از طریق رابط بصری با انتخاب CSS انتخاب کنید — بهراحتی با کلیک ماوس بر روی بلوک مورد نظر در صفحه. ثانیاً، میتوانید از ترکیب Google Sheets + افزونه مرورگر استفاده کنید که صفحات را طبق برنامهریزی بررسی کرده و نتیجه را در جدول ثبت میکند.
اگر در تیم فردی با مهارتهای فنی پایه وجود داشته باشد، سیستم Python حداکثر انعطافپذیری را ارائه میدهد. حداقل اسکریپت به شکل زیر است:
import requests
from bs4 import BeautifulSoup
proxies = {
"http": "http://login:password@proxy_host:port",
"https": "http://login:password@proxy_host:port",
}
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"
}
url = "https://example-shop.ru/product/12345"
response = requests.get(url, proxies=proxies, headers=headers, timeout=15)
soup = BeautifulSoup(response.text, "html.parser")
price = soup.select_one(".product-price").get_text(strip=True)
print(f"قیمت فعلی: {price}")
برای صفحاتی که قیمت را از طریق JavaScript بارگذاری میکنند (این برای Wildberries و Ozon معمول است)، درخواستهای عادی کار نخواهد کرد — به یک مرورگر headless مبتنی بر Selenium یا Playwright نیاز دارید که صفحه را بهطور کامل رندر کند، مانند اینکه یک کاربر عادی انجام میدهد. این رویکرد کندتر است، اما دادههای دقیقی حتی با محتوای دینامیک ارائه میدهد.
تنظیم چرخش و فرکانس درخواستها
حتی با پروکسیهای باکیفیت، سیستم ممکن است تحت مسدودیت قرار گیرد اگر درخواستها خیلی مکرر و یکنواخت باشند. الگوریتمهای ضد ربات بازارها نه تنها IP بلکه الگوی رفتار را نیز تحلیل میکنند: فاصلههای بین درخواستها، ترتیب مراجعه به صفحات، تکرار هدرها.
قوانین کارآمد چرخش که ریسک مسدودیت را کاهش میدهند:
- IP را برای هر درخواست یا هر 5-10 درخواست تغییر دهید — اکثر ارائهدهندگان پروکسیهای مسکونی از چرخش خودکار بر اساس تایمر یا بر اساس درخواست پشتیبانی میکنند.
- یک تأخیر تصادفی بین درخواستها از 3 تا 15 ثانیه اضافه کنید بهجای فاصله ثابت.
- User-Agent را از لیست مرورگرهای واقعی متناوب کنید — از یک هدر یکسان برای هزاران درخواست متوالی استفاده نکنید.
- بار را در طول روز توزیع کنید: کل کاتالوگ را در یک بار در 00:00 بررسی نکنید، بررسیها را به چند ساعت تقسیم کنید.
- از IPهای جغرافیایی مرتبط استفاده کنید — اگر رقیب در روسیه فروش میکند، پروکسی باید با جغرافیای روسی باشد، در غیر این صورت قیمتها و موجودی ممکن است با واقعیت برای منطقه شما متفاوت باشد.
برای نظارت بر 1000-3000 کارت در روز، یک مجموعه از چند ده IP همزمان با چرخش هر 5-10 دقیقه کافی است. برای مقیاس بزرگتر (دهها هزار بررسی) به یک ارائهدهنده با مجموعه بزرگتری از IPهای مسکونی و پشتیبانی از چرخش از طریق API نیاز دارید تا تغییر IP را مستقیماً در اسکریپت جمعآوری دادهها ادغام کنید.
ویژگیهای نظارت بر Wildberries، Ozon و Avito
هر پلتفرم دارای ویژگیهای خاص خود در حفاظت است و طرح باید برای آن تطبیق داده شود.
Wildberries دادههای قیمت و موجودی را از طریق API داخلی ارائه میدهد که میتوان آن را بهطور مستقیم فراخوانی کرد و پاسخ JSON را بدون نیاز به پارس کردن HTML دریافت کرد. این سریعتر و پایدارتر از رندر کردن صفحه با مرورگر است، اما این API محدودیتهایی در فرکانس درخواستها از یک IP دارد، بنابراین چرخش پروکسی در اینجا هنگام نظارت بر بیش از 50-100 کالا در ساعت الزامی است.
Ozon بهطور فعال از رندرینگ JavaScript و حفاظت شدیدتر از رباتها استفاده میکند، از جمله بررسی رفتار ماوس و سرعت اسکرول در برخی بخشها. برای نظارت پایدار بر Ozon معمولاً به یک مرورگر headless با شبیهسازی اقدامات واقعی کاربر نیاز است، نه فقط یک درخواست HTTP.
Avito در درجه اول فرکانس درخواستها از یک IP و الگوهای جستجوی آگهیها را ردیابی میکند. برای نظارت بر آگهیهای رقبا (برای مثال، ردیابی آگهیهای جدید در حوزه شما یا تغییر قیمت) بسیار حیاتی است که فرکانس درخواستها را پایین نگه دارید — نه بیشتر از یک درخواست برای هر آگهی در هر 10-15 دقیقه از یک IP، در غیر این صورت حساب یا IP به حالت مسدودیت میرود که در آن دادههای غیرمعتبر بدون خطای واضح ارائه میشود.
بسیاری از متخصصان SMM و آربیتراژ برای وظایف مشابه چندحسابی از مرورگرهای ضد شناسایی مانند Dolphin Anty، AdsPower یا Multilogin استفاده میکنند — این ابزارها همچنین برای بررسی دستی کارتهای رقبا مناسب هستند، اگر جمعآوری خودکار دادهها اطلاعات مشکوکی را نشان دهد و نیاز به تأیید دستی از طریق یک پروفایل جداگانه با پروکسی متصل باشد.
ذخیرهسازی دادهها و داشبوردها
دادههای جمعآوری شده بدون یک روش راحت برای تحلیل آنها بیفایده هستند. برای کاتالوگهای کوچک (تا 500 SKU) Google Sheets با تاریخچه قیمتها بر اساس تاریخ و فرمتبندی شرطی که تغییر قیمت رقیب را به رنگ قرمز یا سبز نشان میدهد، کافی است. برای حجمهای بزرگتر به یک پایگاه داده نیاز است — PostgreSQL یا حتی SQLite مناسب است، اگر سیستم بر روی یک سرور کار کند.
بر اساس دادههای جمعآوری شده، میتوان داشبوردهای سادهای در Google Data Studio (Looker Studio) یا Power BI ساخت که در آن میتوان مشاهده کرد: دینامیک قیمت رقیب در 30 روز گذشته، تفاوت قیمت نسبت به موقعیت شما، فرکانس تغییر قیمت هر رقیب. این بصریسازی به شناسایی الگوها کمک میکند — برای مثال، رقیب هر دوشنبه صبح قیمت را تغییر میدهد و شما میتوانید استراتژی خود را بر اساس این چرخه تنظیم کنید.
مهم است که نه تنها قیمت فعلی، بلکه تمام تاریخچه تغییرات با زمانمهرها را ذخیره کنید. این امکان را فراهم میکند که بعداً فصلپذیری را تحلیل کنید، دامپینگ قبل از فروشها را شناسایی کنید و رفتار رقبا را در دورههای مشابه بعدی پیشبینی کنید (برای مثال، قبل از 11.11 یا جمعه سیاه).
اشتباهات رایج در ساخت سیستم
در عمل، بیشتر سیستمهای نظارت خودساخته به دلیل چندین اشتباه رایج که به راحتی میتوان از آنها جلوگیری کرد، خراب میشوند.
- یک IP برای کل نظارت. حتی یک پروکسی باکیفیت دیر یا زود به مسدودیت میرسد، اگر از طریق آن هزاران درخواست بدون چرخش ارسال شود.
- نادیده گرفتن هدرهای مرورگر. درخواست بدون User-Agent یا با هدر قدیمی — این یک سیگنال فوری ربات برای سیستمهای ضد ربات است.
- فرکانس بررسی بسیار بالا. نظارت هر دقیقه فقط برای 5-10 رقیب کلیدی معقول است، برای بقیه کاتالوگ بررسی هر چند ساعت کافی است.
- عدم پردازش خطاها. اگر وبسایت کپچا را برگرداند یا بهطور موقت در دسترس نباشد، سیستم باید این را شناسایی کند و تلاش را بعداً تکرار کند، نه اینکه یک مقدار خالی یا نادرست را بهعنوان قیمت فعلی در پایگاه ثبت کند.
- پروکسیهای مراکز داده برای بازارها. صرفهجویی در نوع پروکسی منجر به مسدودیتهای مکرر و نیاز به تغییر IP بهصورت دستی هر روز میشود — در نهایت سیستم نیاز به کار دستی بیشتری دارد تا آنچه باید باشد.
نتیجهگیری
سیستم نظارت بر رقبا در بازارها یک تنظیم یکباره نیست، بلکه یک ابزار کاری است که نیاز به معماری صحیح دارد: لیست اهداف، اسکرپر، لایه پروکسی، ذخیرهسازی دادهها و منطق واکنش به تغییرات. حلقه کلیدی که ثبات کل طرح به آن بستگی دارد — پروکسی است. IPهای سروری به سرعت توسط سیستمهای ضد ربات Wildberries و Ozon مسدود میشوند، بنابراین برای نظارت منظم بر بازارها باید در بودجه IPهای باکیفیت با چرخش در نظر گرفته شود.
اگر شما قصد دارید قیمتهای رقبا را در Wildberries، Ozon یا Avito نظارت کنید، با پروکسیهای مسکونی شروع کنید — آنها دقت بالای دادههای جمعآوری شده و حداقل ریسک مسدودیت را با چرخش هوشمند فراهم میکنند. برای بررسیهای نقطهای از محافظتشدهترین کارتها، پروکسیهای موبایل را در ذخیره نگه دارید، و برای وظایف کمکی در وبسایتهای کمتر محافظتشده، پروکسیهای مراکز داده نیز مناسب هستند.