−25%

på Windows ved årlig betaling, til 31/10. Se pakkerne

EQVPS
Kom i gang

VPS til web-scraping: opsætning, dimensionering og ærlige grænser

6. jul. 2026 · 4 min. læsning · EQVPS Team

En scraper på din bærbare er fin, indtil du lukker den midt i en kørsel, din hjemme-IP bliver rate-limited, eller du vil have det samme job til at køre hver time, uanset om du er vågen eller ej. At flytte den til en VPS fikser alle tre: den forbliver oppe 24/7, den brænder ikke din hjemme-IP's omdømme, og cron eller en systemd-timer kører den efter tidsplan uden dig. Her er, hvordan man sætter det op, hvor meget server du faktisk har brug for, og de dele, de fleste guides stille springer over.

Hvorfor en VPS slår din maskine til dette

  • 24/7 og planlagt. En scraper, der kører hver time, har brug for en vært, der altid er tændt. En bærbar er det ikke.
  • Din hjemme-IP forbliver ren. At scrape hjemmefra betyder, at din residentielle IP tager rate-limits og blokeringer. Gør det fra en server, og din egen forbindelse forbliver urørt.
  • Stabilitet. Ingen sleep, ingen wifi-dropouts midt i et crawl, en stabil datacenter-forbindelse, og et sted at akkumulere resultater.

Stakken, og hvad hver del har brug for

To meget forskellige vægtklasser, og at vælge det forkerte abonnement spilder penge eller udsulter jobbet:

  • httpx / requests (Python) — til API'er, JSON-endpoints og statisk HTML. Dette er let: processen sidder i titusinder af megabytes, netværks-bundet, ikke CPU-bundet. En $3 Nano (2 vCPU / 1 GB) kører dette komfortabelt, selv med samtidighed via asyncio.
  • Playwright / headless Chromium — til JavaScript-renderede sites, hvor du har brug for en rigtig browser. Dette er den tunge. Headless Chromium er cirka 300–400 MB per browser-instans, plus 100–200 MB per åben kontekst/fane, plus din runtime. Budgettér:
    • $5 Micro (2 vCPU / 2 GB) — en eller to browser-kontekster ad gangen.
    • $8 Small (4 vCPU / 4 GB) — flere parallelle kontekster, eller tungere sider.

Tommelfingerreglen: din kode er næsten aldrig flaskehalsen — Chromium er. Dimensionér efter browseren, ikke efter scraperen.

Planlægning: systemd-timer frem for cron

cron virker, men en systemd-timer er den bedre standard på en server, du vedligeholder: logs gennem journalctl, indhentning hvis boksen var nede, og inspicerbar per-kørsels-status. En minimal opsætning:

# /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   # se kørsler

Persistent=true er den bid, cron ikke kan: hvis serveren var slukket ved kørselstid, affyrer jobbet én gang ved boot i stedet for stille at springe over.

Hvor resultater går

Hold det simpelt og match volumen: SQLite til strukturerede data, du vil forespørge (én fil, nul opsætning), CSV til hurtige tabel-dumps, eller et S3-kompatibelt objektlager, når resultater vokser ud af boksen, eller du vil have dem væk fra serveren. Rotér dine logs (logrotate eller journald-grænser), så en snakkesalig scraper ikke langsomt fylder disken.

Den ærlige del: udgangs-IP og omdømme

Det er detaljen, der afgør, om din scraper virker i en uge eller bliver blokeret på dag ét.

På et NAT-abonnement er den udgående adresse ikke din egen. Det er dens omdømme heller ikke — andres trafik fra samme adresse mod det samme mål kan få adressen rate-limited, før du sender en eneste forespørgsel. Fint til let, lejlighedsvis scraping; en risiko ved volumen.

En dedikeret IP giver dig dit eget udgangs-omdømme — ingen andens adfærd påvirker det. Men det skærer begge veje: aggressiv scraping brænder din egen rene IP, og når et mål blokerer den, er den blokeret. En dedikeret IP er kontrol, ikke immunitet.

I reel skala har du brug for eksterne proxy-puljer. Ingen enkelt IP — NAT eller dedikeret — kan sprede belastning over mange adresser, hvilket er, hvad seriøs scraping mod IP-rate-limitede mål kræver. Proxier er et generisk, tredjeparts-lag, du tilføjer ovenpå; VPS'en kører scraperen, proxy-puljen leverer adresserne. Forvent ikke, at én server-IP laver en proxy-puljes job.

Etik og AUP'en — ikke valgfrit

Scraping bor i en juridisk og etisk gråzone, så vær klarøjet:

  • Respektér rate limits og robots.txt. Sæt dine forespørgsler ned. En høflig scraper ligner trafik; en uhøflig ligner et angreb.
  • DoS ikke dit mål. At hamre et site, indtil det vælter, er ikke scraping, det er et denial-of-service — og det er en overtrædelse af acceptabel brug her, der får tjenesten termineret.
  • Scrap kun, hvad du har lov til. Lovlig, tilladt dataindsamling er linjen. Kryds den, og det er på dig.

Bundlinjen

En VPS er det rigtige hjem for en scraper: altid-tændt, planlagt og væk fra din hjemme-IP. Match abonnementet til stakken — $3 Nano til httpx, $5 Micro til $8 Small til Playwright — planlæg med en systemd-timer, og vær ærlig om IP'er: en NAT-udgangsadresse er ikke din, og omdømmet heller ikke, en dedikeret IP er din at opbygge eller brænde, og reel skala betyder proxy-puljer. Lås boksen ned først med ny-VPS-sikkerhedstjeklisten, dimensionér den rigtigt ved hjælp af VPS-dimensioneringsguiden, og hvis betal-uden-et-kort-privatliv betyder noget, er den anonyme VPS-opdeling den ærlige version. Scrap ansvarligt — AUP'en er reel.


Klar til at scrape? Et Micro-abonnement er en solid start; store samtidige crawls klarer sig bedre på Small.

FAQ

Hvilke VPS-specifikationer har jeg brug for til web-scraping?

Afhænger af stakken. En almindelig HTTP-scraper (httpx/requests der rammer API'er eller statisk HTML) er let — en $3 Nano med 1 GB er rigeligt. I det øjeblik du har brug for en rigtig browser til JavaScript-tunge sites, vil Playwright med headless Chromium have 2–4 GB: en $5 Micro til en eller to browser-kontekster, en $8 Small hvis du kører flere parallelt. Chromium er RAM-slugeren, ikke din kode.

Kan jeg scrape fra serverens egen IP, eller har jeg brug for proxier?

Til lav-volumen, velopdragen scraping af sites, der tillader det, er serverens IP fin. I stor skala, eller mod sites der rate-limiter efter IP, har du brug for en ekstern proxy-pulje — én IP (NAT eller dedikeret) kan ikke sprede belastningen, og at hamre fra en enkelt adresse får den blokeret hurtigt. En dedikeret IP giver dig et rent omdømme, du kontrollerer; proxier giver dig mange.

cron eller systemd-timer til planlagte scrapes?

En systemd-timer, i næsten alle tilfælde. I modsætning til cron giver den dig ordentlig logning via journalctl, afhængighedsrækkefølge, automatisk indhentning hvis boksen var nede, og per-kørsels-status du kan inspicere. cron virker stadig til dødsimple jobs, men en timer er den bedre standard på en server, du faktisk vedligeholder.

Er web-scraping tilladt på VPS'en?

Lovlig, respektfuld scraping — ja. Aggressiv scraping, der ignorerer rate limits eller robots.txt, eller som svarer til at hamre et mål til et denial-of-service, er en overtrædelse af acceptabel brug og får tjenesten termineret. Scrap, hvad du har lov til, sæt dig selv ned, og forvandl ikke en scraper til et angreb.

Kommentarer

Ingen kommentarer endnu. Vær den første.

Skriv en kommentar

Kommentarer modereres, før de vises.