گرمای تابستان — همه‌چیز آب می‌شود، حتی قیمت‌های ما.−25%−۲۵٪ روی هر پلن سالانه، تا ۳۱ اوتدیدن پلن‌ها
EQVPS

VPS برای وب‌اسکرپینگ: راه‌اندازی، انتخاب اندازه، و محدودیت‌های صادقانه

15 تیر 1405 · 5 دقیقه مطالعه · EQVPS Team

یک اسکرپر روی لپ‌تاپ شما خوب است تا زمانی که وسط اجرا ببندیدش، IP خانه‌تان محدودیت نرخ بخورد، یا بخواهید همان کار هر ساعت اجرا شود، چه بیدار باشید چه نه. انتقالش به یک VPS هر سه را حل می‌کند: ۲۴/۷ روشن می‌ماند، اعتبار IP خانه‌تان را نمی‌سوزاند، و cron یا یک تایمر systemd آن را طبق برنامه بدون شما اجرا می‌کند. اینجا می‌بینید چطور آن را راه‌اندازی کنید، واقعاً به چه مقدار سرور نیاز دارید، و بخش‌هایی که بیشتر راهنماها بی‌سروصدا از رویشان رد می‌شوند.

چرا یک VPS برای این کار از ماشین شما بهتر است

پشته، و اینکه هر بخش به چه چیزی نیاز دارد

دو رده‌ی وزنیِ بسیار متفاوت، و انتخاب پلن اشتباه یا پول را هدر می‌دهد یا کار را گرسنه نگه می‌دارد:

قاعده‌ی سرانگشتی: کد شما تقریباً هرگز گلوگاه نیست — Chromium هست. برای مرورگر اندازه بگیرید، نه برای اسکرپر.

زمان‌بندی: تایمر systemd به جای cron

cron جواب می‌دهد، اما یک تایمر systemd روی سروری که نگهداری‌اش می‌کنید انتخاب پیش‌فرض بهتری است: لاگ از طریق journalctl، جبران اگر باکس خاموش بوده، و وضعیت هر اجرا که قابل بازرسی است. یک راه‌اندازی حداقلی:

# /etc/systemd/system/scrape.service
[Unit]
Description=Run scraper
[Service]
Type=oneshot
User=scraper
WorkingDirectory=/home/scraper/job
ExecStart=/home/scraper/job/venv/bin/python scrape.py
# /etc/systemd/system/scrape.timer
[Unit]
Description=Hourly scrape
[Timer]
OnCalendar=hourly
Persistent=true
[Install]
WantedBy=timers.target
sudo systemctl enable --now scrape.timer
journalctl -u scrape.service -f   # تماشای اجراها

Persistent=true همان چیزی است که cron نمی‌تواند: اگر سرور در زمان اجرا خاموش بوده، کار یک بار هنگام بوت شلیک می‌شود به جای اینکه بی‌سروصدا رد شود.

نتایج کجا می‌روند

ساده نگهش دارید و با حجم تطبیقش دهید: SQLite برای داده‌های ساختاریافته‌ای که کوئری خواهید زد (یک فایل، بدون هیچ راه‌اندازی)، CSV برای دامپ‌های جدولی سریع، یا یک آبجکت‌استور سازگار با S3 وقتی نتایج از باکس بزرگ‌تر شدند یا می‌خواهید خارج از سرور باشند. لاگ‌هایتان را بچرخانید (logrotate یا محدودیت‌های journald) تا یک اسکرپر پرحرف کم‌کم دیسک را پر نکند.

بخش صادقانه: IP خروجی و اعتبار

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

در یک پلن NAT، ترافیک خروجی یک IP خروجی را با مشتریان دیگر به اشتراک می‌گذارد. اعتبار آن IP مشترک است — همسایه‌ای که همان هدف را اسکرپ می‌کند می‌تواند باعث شود آدرس محدودیت نرخ بخورد، پیش از آنکه شما حتی یک درخواست بفرستید. برای اسکرپینگ سبک و گاه‌به‌گاه خوب است؛ در حجم بالا یک بدهی است.

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

در مقیاس واقعی، به استخرهای پروکسی خارجی نیاز دارید. هیچ IP واحدی — اشتراکی یا اختصاصی — نمی‌تواند بار را روی آدرس‌های زیاد پخش کند، که همان چیزی است که اسکرپینگ جدی در برابر اهداف با محدودیت‌نرخ-بر-اساس-IP نیاز دارد. پروکسی‌ها یک لایه‌ی عمومیِ شخص‌ثالث هستند که رویش اضافه می‌کنید؛ VPS اسکرپر را اجرا می‌کند، استخر پروکسی آدرس‌ها را فراهم می‌کند. انتظار نداشته باشید یک IP سرور کارِ یک استخر پروکسی را انجام دهد.

اخلاق و AUP — اختیاری نیست

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

نتیجه‌ی نهایی

یک VPS خانه‌ی درست برای یک اسکرپر است: همیشه‌روشن، زمان‌بندی‌شده، و جدا از IP خانه‌تان. پلن را با پشته تطبیق دهید — Nano سه دلاری برای httpx، Micro پنج دلاری تا Small هشت دلاری برای Playwright — با یک تایمر systemd زمان‌بندی کنید، و درباره‌ی IPها صادق باشید: خروجی اشتراکی اعتبار را به اشتراک می‌گذارد، یک IP اختصاصی مال خودتان است که بسازید یا بسوزانید، و مقیاس واقعی یعنی استخرهای پروکسی. اول باکس را با چک‌لیست امنیتی VPS تازه قفل کنید، با راهنمای انتخاب اندازه‌ی VPS درست اندازه‌اش کنید، و اگر حریم خصوصیِ پرداخت-بدون-کارت برایتان مهم است، تفکیک VPS ناشناس نسخه‌ی صادقانه است. مسئولانه اسکرپ کنید — AUP واقعی است.


آماده‌ی اسکرپ هستید؟ یک پلن Micro شروع محکمی است؛ خزش‌های موازیِ بزرگ روی Small بهتر عمل می‌کنند.

سؤالات متداول

برای وب‌اسکرپینگ به چه مشخصات VPS نیاز دارم؟

بستگی به پشته دارد. یک اسکرپر ساده‌ی HTTP (httpx/requests که به APIها یا HTML ایستا می‌زند) سبک است — یک Nano سه دلاری با ۱ گیگابایت کاملاً کافی است. لحظه‌ای که برای سایت‌های سنگینِ JavaScript به یک مرورگر واقعی نیاز پیدا کنید، Playwright با Chromium headless دو تا چهار گیگابایت می‌خواهد: یک Micro پنج دلاری برای یک یا دو کانتکست مرورگر، یک Small هشت دلاری اگر چند تا را به‌موازات اجرا کنید. Chromium پرخورِ RAM است، نه کد شما.

آیا می‌توانم از IP خودِ سرور اسکرپ کنم، یا به پروکسی نیاز دارم؟

برای اسکرپینگ کم‌حجم و مؤدبانه‌ی سایت‌هایی که اجازه می‌دهند، IP سرور خوب است. در مقیاس بالا، یا در برابر سایت‌هایی که با IP محدودیت نرخ می‌گذارند، به یک استخر پروکسی خارجی نیاز خواهید داشت — یک IP (اشتراکی یا اختصاصی) نمی‌تواند بار را پخش کند، و کوبیدن از یک آدرس واحد باعث می‌شود سریع مسدود شود. یک IP اختصاصی به شما یک اعتبار تمیز می‌دهد که خودتان کنترلش می‌کنید؛ پروکسی‌ها تعداد زیادی می‌دهند.

cron یا تایمر systemd برای اسکرپ‌های زمان‌بندی‌شده؟

تقریباً در هر مورد، یک تایمر systemd. برخلاف cron، لاگ‌گیری درست از طریق journalctl، ترتیب‌بندی وابستگی، جبران خودکار اگر باکس خاموش بوده، و وضعیت هر اجرا که بشود بازرسی‌اش کرد را به شما می‌دهد. cron هنوز برای کارهای بسیار ساده جواب می‌دهد، اما یک تایمر روی سروری که واقعاً نگهداری‌اش می‌کنید انتخاب پیش‌فرض بهتری است.

آیا وب‌اسکرپینگ روی VPS مجاز است؟

اسکرپینگ قانونی و محترمانه — بله. اسکرپینگ تهاجمی که محدودیت‌های نرخ یا robots.txt را نادیده می‌گیرد، یا در حد کوبیدن یک هدف تا حد از کار افتادن (denial of service) است، نقض استفاده‌ی مجاز به شمار می‌رود و باعث خاتمه‌ی سرویس می‌شود. آنچه مجازید را اسکرپ کنید، خودتان را محدود کنید، و اسکرپر را به یک حمله تبدیل نکنید.

← بازگشت به وبلاگ← پلن‌ها و قیمت‌ها

نظرات

هنوز نظری نیست. اولین نفر باشید.

یک نظر بگذارید

نظرات پیش از نمایش بررسی می‌شوند.