اگر شما اکتورهایی را در Apify برای پارس کردن Wildberries، Ozon، Amazon یا Google Maps راهاندازی میکنید، دیر یا زود سوال پیش میآید: آیا باید برای Apify Proxy داخلی هزینه پرداخت کنید یا مجموعه آدرسهای IP خود را متصل کنید. در حجمهای بالا، تفاوت هزینه میتواند به دهها هزار روبل در ماه برسد. در این مقاله بررسی میکنیم که چگونه قیمت ترافیک در Apify محاسبه میشود، کی پروکسی خود به صرفهتر است و چگونه بهطور فنی آن را به اکتور متصل کنیم — با مثالهای کد.
Apify-اکتورها چیست و چرا به پروکسی نیاز دارند
Apify یک پلتفرم برای راهاندازی اسکریپرهای آماده (اکتورها) بدون نیاز به راهاندازی زیرساخت خود است. در Apify Store صدها اکتور آماده وجود دارد: پارسرهای Amazon، Google Maps Scraper، Instagram Scraper، اکتورهایی برای جمعآوری کارتهای محصولات از Wildberries و Ozon. بیشتر آنها به پروکسی نیاز دارند، زیرا سایتهای هدف به سرعت آدرسهای IP دیتاسنترهای Apify را در هنگام درخواستهای انبوه مسدود میکنند.
پروکسی در اکتور سه وظیفه را انجام میدهد: محدودیتهای جغرافیایی را دور میزند (به عنوان مثال، نیاز به جمعآوری قیمتها بهطور خاص برای منطقه "مسکو" در Wildberries)، فرکانس کپچا و مسدودیتهای موقتی را کاهش میدهد، و همچنین بار را بین چندین IP توزیع میکند و رفتار کاربران عادی را شبیهسازی میکند، نه ربات. بدون پروکسی، بیشتر اکتورها برای پارس کردن بازارها یا اصلاً راهاندازی نمیشوند، یا دادهها را با خطا جمعآوری میکنند.
Apify یک راهحل داخلی دارد — Apify Proxy، که با یک خط کد متصل میشود. این برای شروع راحت است، اما یک نکته دارد: پرداخت بر اساس ترافیک به گیگابایت است و در هنگام پارس کردن منظم یا حجیم، هزینه به سرعت افزایش مییابد. به همین دلیل کاربران با تجربه این پلتفرم به طور فزایندهای پروکسیهای خود را به اکتورها متصل میکنند.
Apify Proxy داخلی چگونه کار میکند و تعرفهگذاری آن
Apify Proxy سه نوع IP ارائه میدهد: دیتاسنتر، ریزیدنت (از طریق مجموعههای شریک) و
پروکسی Google SERP برای پارس کردن نتایج جستجو. اتصال بسیار ساده است — کافی است
پارامتر useApifyProxy: true
را در پیکربندی اکتور مشخص کنید، و پلتفرم به طور خودکار IP را برای هر درخواست یا جلسه چرخش میدهد.
مشکل در مدل پرداخت است: ترافیک پروکسیهای ریزیدنت در داخل Apify بر اساس گیگابایت محاسبه میشود، و قیمت برای هر گیگابایت در راهحل داخلی معمولاً بیشتر از تأمینکنندگان پروکسی مستقیم است، زیرا Apify حاشیه خود را برای ادغام و مدیریت مجموعه اضافه میکند. برای راهاندازیهای آزمایشی کوچک (چند هزار درخواست در ماه) این موضوع بحرانی نیست. اما اگر اکتور در حالت نظارت کار کند — به عنوان مثال، هر ساعت قیمتها را برای 5000 SKU از Wildberries میگیرد — مصرف ترافیک بهطور نمایی افزایش مییابد و پروکسی داخلی به گرانترین بخش بودجه پروژه تبدیل میشود، حتی از هزینه خود برنامه Apify نیز بیشتر میشود.
نکته اضافی: مجموعه داخلی Apify برای همه مشتریان پلتفرم مشترک است. این به این معنی است که آدرسهای IP ممکن است قبلاً توسط کاربران دیگر که همان سایتها را پارس میکنند "افشا" شده باشند. این خطر کپچا و مسدودیتها را به ویژه در بازارهایی که دارای حفاظت ضد ربات سخت هستند، مانند Ozon و Avito افزایش میدهد.
کی مجموعه پروکسی خود ارزانتر است: محاسبه با اعداد
برای درک اینکه کی انتقال به پروکسی خود توجیهپذیر است، باید دو متغیر را مقایسه کنید: هزینه ترافیک در Apify Proxy و هزینه حجم مشابه از تأمینکننده پروکسی مستقیم، به علاوه هزینه زمان برای ادغام و نگهداری مجموعه خود.
عمل نشان میدهد که سه سناریو وجود دارد:
- پارس یکباره (تا 1 گیگابایت ترافیک در ماه) — Apify Proxy داخلی به صرفهتر است: هیچ دلیلی برای صرف زمان برای تنظیم مجموعه خود به خاطر جمعآوری دادههای کوچک یکباره وجود ندارد.
- نظارت منظم (5–50 گیگابایت در ماه) — نقطه عطف. در اینجا باید حساب کنید: اگر اکتور روزانه کار کند و کارتهای محصولات را از Wildberries یا Ozon جمعآوری کند، مصرف ترافیک با پروکسی داخلی سریعتر از مجموعه خود با هزینه ثابت برای IP یا تعرفه نامحدود افزایش مییابد.
- پارس صنعتی (از 50 گیگابایت در ماه، دهها اکتور، چندین منبع) — مجموعه خود تقریباً همیشه ارزانتر است، زیرا امکان توافق بر سر قیمت مستقیم برای ترافیک یا تعداد IP بدون حاشیه پلتفرم واسطه وجود دارد.
یک مثال ساده از محاسبه: اگر اکتور روزانه 10,000 کارت محصول را پردازش کند و هر صفحه به طور متوسط 300 کیلوبایت با در نظر گرفتن تصاویر و اسکریپتها (بدون بهینهسازی بارگذاری منابع) وزن داشته باشد، در یک ماه حدود 90 گیگابایت ترافیک جمع میشود. با تعرفه Apify Proxy برای ترافیک ریزیدنت مجموع نهایی اغلب بیشتر از هزینه حجم مشابه از تأمینکننده پروکسی خارجی به یک و نیم تا دو برابر میرسد. اگر اکتور تنظیم شده باشد تا بارگذاری تصاویر و اسکریپتهای خارجی را مسدود کند (که به راحتی میتوان از طریق پیکربندی Puppeteer/Playwright انجام داد)، وزن واقعی ترافیک به شدت کاهش مییابد و صرفهجویی از انتقال به پروکسی خود به وضوح بیشتر میشود.
کدام نوع پروکسی را به اکتورها متصل کنیم
انتخاب نوع پروکسی به طور مستقیم به اینکه اکتور چه سایتی را پارس میکند و چقدر به ترافیک ربات حساس است بستگی دارد.
| نوع پروکسی | کی در Apify استفاده شود | خطر مسدودیت |
|---|---|---|
| پروکسی دیتاسنتر | پارس کردن سایتهای بدون حفاظت ضد ربات سخت، منابع مشابه API، کاتالوگهای ایستا | بالا در بازارهایی با حفاظت |
| پروکسی ریزیدنت | Wildberries، Ozon، Amazon، Google Maps Scraper — سایتهایی که IPهای دیتاسنتر را شناسایی میکنند | پایین با چرخش صحیح |
| پروکسی موبایل | پارس کردن شبکههای اجتماعی (Instagram، TikTok) از طریق اکتورهای Apify که نیاز به "پاکی" IP حداکثری دارند | حداقل |
برای پارس کردن بازارهایی مانند Wildberries و Ozon، انتخاب بهینه — پروکسیهای ریزیدنت, زیرا آنها از IPهای واقعی ارائهدهندگان خانگی استفاده میکنند و به ندرت تحت فیلترهای ضد ربات سخت قرار میگیرند. برای منابع کمتر محافظتشده (RSS، کاتالوگهای باز، وبسایتهای شرکتی) کافی است از IPهای دیتاسنتر استفاده کنید — آنها ارزانتر و سریعتر هستند.
چگونه پروکسی خود را به اکتور متصل کنیم: کد و تنظیمات
بیشتر اکتورها در Apify بر اساس Crawlee (که قبلاً Apify SDK بود) ساخته شدهاند و از انتقال
لیست پروکسی خود از طریق پارامتر proxyConfiguration پشتیبانی میکنند.
به جای مجموعه داخلی، آرایهای از آدرسهای پروکسی شما مشخص میشود.
import { Actor } from 'apify';
import { CheerioCrawler, ProxyConfiguration } from 'crawlee';
await Actor.init();
// لیست پروکسی خود را به جای useApifyProxy منتقل میکنیم
const proxyConfiguration = new ProxyConfiguration({
proxyUrls: [
'http://user:[email protected]:12345',
'http://user:[email protected]:12345',
'http://user:[email protected]:12345',
],
});
const crawler = new CheerioCrawler({
proxyConfiguration,
maxRequestsPerCrawl: 5000,
async requestHandler({ request, $, log }) {
const title = $('title').text();
log.info(`صفحه جمعآوری شده: ${title}`);
await Actor.pushData({ url: request.url, title });
},
});
await crawler.run(['https://www.wildberries.ru/catalog/...']);
await Actor.exit();
نکته مهم: هنگام انتقال به پروکسی خود حتماً چرخش جلسات و تأخیرها بین درخواستها را بهصورت دستی تنظیم کنید — Apify Proxy داخلی این کار را بهطور خودکار انجام میداد، اما هنگام اتصال به مجموعه خارجی، منطق باید در کد اکتور یا در پیکربندی کرالر نوشته شود.
جدول مقایسه: داخلی در مقابل پروکسی خود
| معیار | Apify Proxy (داخلی) | مجموعه پروکسی خود |
|---|---|---|
| سرعت اتصال | یک خط کد، بدون تنظیم | نیاز به 15-30 دقیقه برای ادغام دارد |
| هزینه در حجمهای کوچک | به صرفهتر | برای راهاندازیهای نادر اضافی است |
| هزینه از 10-50 گیگابایت/ماه | به نسبت ترافیک افزایش مییابد | به صرفهتر، معمولاً مدل ثابت |
| "پاکی" مجموعه IP | مجموعه عمومی، احتمال تداخل با دیگر مشتریان | مجموعه اختصاصی یا چرخشی برای نیازهای شما |
| انعطافپذیری هدفگذاری جغرافیایی | مجموعه محدود کشورها/منطقهها | انتخاب شهر/منطقه خاص برای بازار |
| کنترل بر چرخش | خودکار، بدون تنظیمات | بهصورت دستی برای الگوی مورد نیاز تنظیم میشود |
موارد استفاده: پارس کردن بازارها در عمل
نظارت بر قیمتها در Wildberries. فروشندگانی که قیمتهای رقبای خود را برای 3000-10000 SKU چند بار در روز پیگیری میکنند، معمولاً با Apify Proxy داخلی شروع میکنند، اما پس از اولین ماه با هزینه بالای ترافیک به پروکسیهای ریزیدنت با پیوند به منطقه منتقل میشوند. این نه تنها به کاهش هزینهها کمک میکند، بلکه قیمتها را دقیقاً همانطور که خریدار از شهر خاص میبیند، نشان میدهد — که حیاتی است، زیرا Wildberries قیمتهای متفاوتی را بسته به انبار و منطقه تحویل نشان میدهد.
جمعآوری کارتهای محصولات در Ozon. Ozon بهطور فعال از تحلیل رفتاری استفاده میکند و به سرعت IP را در صورت الگوهای یکسان درخواست مسدود میکند. اکتوری که از طریق مجموعه عمومی Apify Proxy کار میکند، بیشتر با کپچاها مواجه میشود زیرا همان IPها بهطور همزمان توسط کاربران دیگر پلتفرم برای وظایف مشابه استفاده میشوند. انتقال به مجموعه اختصاصی پروکسیهای ریزیدنت با منطق چرخش و تأخیرهای تصادفی بین درخواستها، فراوانی کپچاها را چندین برابر کاهش میدهد.
پارس کردن Google Maps و نظرات. برای وظایفی که نیاز به خاص بودن جغرافیایی ندارند (به عنوان مثال، جمعآوری اطلاعات تماس شرکتها در سراسر کشور)، معمولاً کافی است از پروکسیهای دیتاسنتر استفاده کنید — آنها سریعتر از ریزیدنتها هستند و بهطور قابل توجهی ارزانتر در حجمهای بالا، اگر سایت هدف از حفاظت ضد ربات تهاجمی استفاده نکند.
چکلیست انتخاب پروکسی برای پروژه Apify
- حجم واقعی ترافیک اکتور را در یک ماه محاسبه کنید (درخواستها × وزن متوسط صفحه)
- این حجم را با تعرفه Apify Proxy داخلی مقایسه کنید — اگر بیشتر از 5-10 گیگابایت بهطور منظم میشود، گزینههای دیگر را در نظر بگیرید
- تعیین کنید که چقدر سایت هدف به رباتها حساس است — بازارهایی مانند Ozon به IPهای ریزیدنت نیاز دارند
- بررسی کنید که آیا نیاز به پیوند جغرافیایی به منطقه خاصی وجود دارد (برای Wildberries و Ozon مرتبط است)
- هنگام انتقال به مجموعه خارجی، چرخش جلسات و تأخیرها بین درخواستها را بهصورت دستی تنظیم کنید
- بارگذاری منابع اضافی (تصاویر، فونتها، ردیابها) را در اکتور غیرفعال کنید — این مصرف ترافیک را بدون توجه به نوع پروکسی کاهش میدهد
- مجموعه را در حجم کوچک قبل از انتقال همه اکتورها به پیکربندی جدید آزمایش کنید
نتیجهگیری
Apify Proxy داخلی — یک شروع راحت برای وظایف یکباره و راهاندازیهای آزمایشی کوچک، اما در هنگام پارس کردن منظم یا صنعتی بازارها، هزینه آن به سرعت از هزینه مجموعه پروکسی خود فراتر میرود. انتقال نیاز به کمی تنظیم بیشتر در شروع دارد — نوشتن چرخش، جلسات و پیکربندی پروکسی در کد اکتور — اما در ماه اول با حجمهای از 10-50 گیگابایت ترافیک به صرفهجویی میانجامد.
اگر اکتورهای شما دادهها را از Wildberries، Ozon یا Amazon جمعآوری میکنند، به پروکسیهای ریزیدنت توجه کنید — آنها خطر مسدودیت را کم کرده و امکان تعیین منطقه مورد نیاز برای نمایش صحیح قیمتها را فراهم میکنند. برای منابع کمتر محافظتشده بدون ضد ربات سخت، پروکسیهای دیتاسنتر ارزانتر مناسب هستند، و برای پارس کردن برنامههای موبایل و شبکههای اجتماعی از طریق اکتورهای Apify، باید به پروکسیهای موبایل فکر کنید — آنها حداکثر "پاکی" IP را با حداقل خطر شناسایی فراهم میکنند.