−25%

Windows-ის წლიურ გადახდაზე, 31 ოქტომბრამდე. ტარიფებზე

EQVPS
დაწყება

VPS web scraping-ისთვის: დაყენება, ზომა და გულწრფელი ლიმიტები

Jul 6, 2026 · 4 წთ კითხვა · EQVPS Team

scraper თქვენს laptop-ზე კარგია, სანამ არ დახურავთ მას გაშვების შუაში, თქვენი სახლის IP არ მიიღებს rate-limit-ს, ან არ მოისურვებთ, რომ იგივე სამუშაო ყოველ საათს გაეშვას, გაღვიძებული ხართ თუ არა. მისი VPS-ზე გადატანა სამივეს ასწორებს: ის რჩება ჩართული 24/7, არ წვავს თქვენი სახლის IP-ის რეპუტაციას, და cron ან systemd timer უშვებს მას განრიგზე თქვენ გარეშე. აი როგორ დააყენოთ ეს, რამდენი სერვერი გჭირდებათ რეალურად და ნაწილები, რომლებსაც უმეტესი გზამკვლევი ჩუმად ტოვებს.

რატომ სჯობს VPS თქვენს მანქანას ამისთვის

  • 24/7 და დაგეგმილი. scraper, რომელიც საათობრივად მუშაობს, სჭირდება ჰოსტი, რომელიც ყოველთვის ჩართულია. laptop არ არის.
  • თქვენი სახლის IP სუფთა რჩება. სახლიდან scraping ნიშნავს, რომ თქვენი residential IP იღებს rate-limit-ებსა და ბლოკებს. გააკეთეთ ის სერვერიდან და თქვენი საკუთარი კავშირი შეუხებელი რჩება.
  • სტაბილურობა. არავითარი ძილი, არავითარი wifi ჩავარდნა crawl-ის შუაში, სტაბილური დათაცენტრის კავშირი და ადგილი შედეგების დასაგროვებლად.

Stack, და რა სჭირდება თითოეულ ნაწილს

ორი ძალიან განსხვავებული წონის კლასი, და არასწორი ტარიფის არჩევა ფლანგავს ფულს ან აშიმშილებს სამუშაოს:

  • httpx / requests (Python) — API-ებისთვის, JSON endpoint-ებისთვის და სტატიკური HTML-ისთვის. ეს მსუბუქია: პროცესი ზის ათეულ მეგაბაიტში, network-შეზღუდული, არა CPU-შეზღუდული. $3 Nano (2 vCPU / 1 GB) უშვებს ამას კომფორტულად, asyncio-ით concurrency-ითაც კი.
  • Playwright / headless Chromium — JavaScript-რენდერებული საიტებისთვის, სადაც გჭირდებათ რეალური ბრაუზერი. ეს მძიმეა. headless Chromium დაახლოებით 300–400 MB ბრაუზერის instance-ზე, პლუს 100–200 MB ღია კონტექსტზე/tab-ზე, პლუს თქვენი runtime. დაგეგმეთ:
    • $5 Micro (2 vCPU / 2 GB) — ერთი ან ორი ბრაუზერის კონტექსტი ერთდროულად.
    • $8 Small (4 vCPU / 4 GB) — რამდენიმე პარალელური კონტექსტი, ან უფრო მძიმე გვერდები.

ცერის წესი: თქვენი კოდი თითქმის არასოდეს არის ბოსტლნეკი — Chromium არის. მოარგეთ ზომა ბრაუზერს, არა scraper-ს.

დაგეგმვა: systemd timer cron-ის ნაცვლად

cron მუშაობს, მაგრამ systemd timer უკეთესი ნაგულისხმევია სერვერზე, რომელსაც ინახავთ: log-ები journalctl-ით, catch-up, თუ box გამორთული იყო, და შემოწმებადი per-run სტატუსი. მინიმალური დაყენება:

# /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   # watch runs

Persistent=true არის ის, რასაც cron ვერ აკეთებს: თუ სერვერი გამორთული იყო გაშვების დროს, სამუშაო ისვრის ერთხელ boot-ზე, ვიდრე ჩუმად გამოტოვებს.

სად მიდის შედეგები

შეინახეთ ის მარტივად და მოარგეთ მოცულობას: SQLite სტრუქტურირებული მონაცემებისთვის, რომელსაც query-ს გაუკეთებთ (ერთი ფაილი, ნულოვანი დაყენება), CSV სწრაფი ცხრილური dump-ებისთვის, ან S3-თავსებადი object store, როცა შედეგები აღემატება box-ს ან გინდათ ისინი სერვერს გარეთ. ატრიალეთ თქვენი log-ები (logrotate ან journald ლიმიტები), რომ ხმაურიანმა scraper-მა ნელა არ აავსოს დისკი.

გულწრფელი ნაწილი: egress IP და რეპუტაცია

ეს არის დეტალი, რომელიც წყვეტს, იმუშავებს თუ არა თქვენი scraper ერთი კვირა, თუ დაიბლოკება პირველ დღეს.

NAT ტარიფზე გამავალი მისამართი თქვენი საკუთარი არ არის. არც მისი რეპუტაციაა თქვენი — სხვისი ტრაფიკი იმავე მისამართიდან იმავე მიზანზე შეიძლება მისამართს rate-limit მიაღებინოს, სანამ თქვენ ერთ მოთხოვნასაც გააგზავნიდეთ. კარგია მსუბუქი, ხანდახანი scraping-ისთვის; ვალდებულება მოცულობაზე.

გამოყოფილი IP გაძლევთ თქვენს საკუთარ egress რეპუტაციას — არავის სხვის ქცევა არ მოქმედებს მასზე. მაგრამ ის ორივე მხარეს ჭრის: აგრესიული scraping წვავს თქვენს საკუთარ სუფთა IP-ს, და როცა მიზანი დაბლოკავს მას, ის დაბლოკილია. გამოყოფილი IP არის კონტროლი, არა იმუნიტეტი.

რეალურ მასშტაბზე, გჭირდებათ გარე proxy pool-ები. არცერთ ერთ IP-ს — NAT-ს ან გამოყოფილს — არ შეუძლია დატვირთვის გავრცელება ბევრ მისამართზე, რაც სერიოზული scraping-ს სჭირდება IP-rate-limited მიზნების წინააღმდეგ. proxy-ები არის გენერიკული, მესამე-მხარის შრე, რომელსაც ზემოდან ამატებთ; VPS უშვებს scraper-ს, proxy pool უზრუნველყოფს მისამართებს. ნუ ელოდებით, რომ ერთი სერვერის IP proxy pool-ის სამუშაოს გააკეთებს.

ეთიკა და AUP — არა არჩევითი

scraping ცხოვრობს იურიდიულ და ეთიკურ ნაცრისფერ ზონაში, ასე რომ იყავით ნათლად-მხედველი:

  • პატივი ეცით rate limit-ებსა და robots.txt-ს. შეიზღუდეთ თქვენი მოთხოვნები. თავაზიანი scraper გამოიყურება ტრაფიკად; უტაქტო თავდასხმად.
  • არ DoS-ოთ თქვენი მიზანი. საიტის დარტყმა, სანამ ის დაეცემა, არ არის scraping, ეს denial-of-service-ია — და ეს acceptable-use დარღვევაა აქ, რომელიც იწვევს სერვისის შეწყვეტას.
  • scrape-ეთ მხოლოდ ის, რაც ნებადართულია. ლეგალური, დაშვებული მონაცემთა შეგროვება არის ხაზი. გადაკვეთეთ ის და ეს თქვენზეა.

ქვედა ხაზი

VPS არის სწორი სახლი scraper-ისთვის: ყოველთვის-ჩართული, დაგეგმილი და თქვენი სახლის IP-ს გარეთ. მოარგეთ ტარიფი stack-ს — $3 Nano httpx-ისთვის, $5 Micro-დან $8 Small-მდე Playwright-ისთვის — დაგეგმეთ systemd timer-ით და იყავით გულწრფელი IP-ებზე: NAT egress მისამართი თქვენი არ არის, არც მისი რეპუტაცია, გამოყოფილი IP თქვენია ასაშენებელი ან დასაწვავი, და რეალური მასშტაბი ნიშნავს proxy pool-ებს. ჯერ დაბლოკეთ box ახალი-VPS უსაფრთხოების checklist-ით, მოარგეთ ზომა VPS ზომის გზამკვლევით, და თუ ბარათის-გარეშე-გადახდის კონფიდენციალურობა მნიშვნელოვანია, ანონიმური VPS-ის ანალიზი გულწრფელი ვერსიაა. scrape-ეთ პასუხისმგებლობით — AUP რეალურია.


მზად ხართ scrape-ისთვის? Micro ტარიფი მყარი დასაწყისია; დიდი პარალელური crawl-ები უკეთესია Small-ზე.

ხდკ

რომელი VPS მახასიათებლები მჭირდება web scraping-ისთვის?

დამოკიდებულია stack-ზე. უბრალო HTTP scraper (httpx/requests, რომელიც ურტყამს API-ებს ან სტატიკურ HTML-ს) მსუბუქია — $3 Nano 1 GB-ით საკმარისზე მეტია. იმ მომენტში, როცა გჭირდებათ რეალური ბრაუზერი JavaScript-მძიმე საიტებისთვის, Playwright headless Chromium-ით გინდათ 2–4 GB: $5 Micro ერთი-ორი ბრაუზერის კონტექსტისთვის, $8 Small, თუ ბევრს პარალელურად უშვებთ. Chromium არის RAM-მჭამელი, არა თქვენი კოდი.

შემიძლია scraping სერვერის საკუთარი IP-იდან, თუ მჭირდება proxy-ები?

დაბალ-მოცულობის, კარგად-მოქცეული scraping-ისთვის საიტებზე, რომლებიც უშვებენ, სერვერის IP კარგია. მასშტაბზე, ან საიტების წინააღმდეგ, რომლებიც ზღუდავენ rate-ს IP-ით, გჭირდებათ გარე proxy pool — ერთი IP (NAT ან გამოყოფილი) ვერ ავრცელებს დატვირთვას, და ერთი მისამართიდან დარტყმა სწრაფად ბლოკავს მას. გამოყოფილი IP გაძლევთ სუფთა რეპუტაციას, რომელსაც აკონტროლებთ; proxy-ები გაძლევენ ბევრს.

cron თუ systemd timer დაგეგმილი scrape-ებისთვის?

systemd timer, თითქმის ყოველ შემთხვევაში. cron-ისგან განსხვავებით ის გაძლევთ სწორ logging-ს journalctl-ით, dependency რიგს, ავტომატურ catch-up-ს, თუ box გამორთული იყო, და per-run სტატუსს, რომელიც შეგიძლიათ შეამოწმოთ. cron ჯერ კიდევ მუშაობს მარტივ სამუშაოებზე, მაგრამ timer უკეთესი ნაგულისხმევია სერვერზე, რომელსაც რეალურად ინახავთ.

web scraping ნებადართულია VPS-ზე?

ლეგალური, პატივისცემით scraping — დიახ. აგრესიული scraping, რომელიც უგულებელყოფს rate limit-ებს ან robots.txt-ს, ან რომელიც უტოლდება მიზნის დარტყმას denial of service-მდე, არის acceptable-use დარღვევა და იწვევს სერვისის შეწყვეტას. scrape-ეთ ის, რაც ნებადართულია, შეიზღუდეთ თავი და არ აქციოთ scraper თავდასხმად.

კომენტარები

ჯერ არ არის კომენტარები. იყავით პირველი.

დატოვეთ კომენტარი

კომენტარები მოდერირდება გამოჩენამდე.