Scraper di laptop Anda baik-baik saja sampai Anda menutupnya di tengah-eksekusi, IP rumah Anda dibatasi-tarif, atau Anda ingin pekerjaan yang sama berjalan tiap jam entah Anda terjaga atau tidak. Memindahkannya ke VPS memperbaiki ketiganya: ia tetap menyala 24/7, ia tidak membakar reputasi IP rumah Anda, dan cron atau timer systemd menjalankannya sesuai jadwal tanpa Anda. Berikut cara menyiapkan itu, berapa server yang sebenarnya Anda butuhkan, dan bagian yang kebanyakan panduan diam-diam lewatkan.
Mengapa VPS mengalahkan mesin Anda untuk ini
- 24/7 dan terjadwal. Scraper yang berjalan tiap jam butuh host yang selalu menyala. Laptop bukan.
- IP rumah Anda tetap bersih. Scraping dari rumah berarti IP residensial Anda menerima batas-tarif dan blokir. Lakukan dari server dan koneksi Anda sendiri tetap tak tersentuh.
- Stabilitas. Tanpa tidur, tanpa wifi putus di tengah-crawl, koneksi pusat data yang stabil, dan tempat untuk mengumpulkan hasil.
Stack, dan apa yang dibutuhkan tiap bagian
Dua kelas berat yang sangat berbeda, dan memilih paket yang salah membuang uang atau membuat pekerjaan kelaparan:
- httpx / requests (Python) — untuk API, endpoint JSON, dan HTML statis. Ini ringan: proses duduk di puluhan megabyte, terikat-jaringan, bukan terikat-CPU. Nano $3 (1 vCPU / 1 GB) menjalankan ini dengan nyaman, bahkan dengan konkurensi lewat
asyncio. - Playwright / Chromium headless — untuk situs yang dirender-JavaScript di mana Anda butuh peramban nyata. Ini yang berat. Chromium headless kira-kira 300–400 MB per instansi peramban, plus 100–200 MB per konteks/tab terbuka, plus runtime Anda. Anggaran:
- Micro $5 (2 vCPU / 2 GB) — satu atau dua konteks peramban pada satu waktu.
- Small $8 (4 vCPU / 4 GB) — beberapa konteks paralel, atau halaman lebih berat.
Aturan praktisnya: kode Anda hampir tidak pernah menjadi hambatan — Chromium yang menjadi hambatan. Tentukan ukuran untuk peramban, bukan scraper.
Penjadwalan: timer systemd alih-alih cron
cron bekerja, tapi timer systemd adalah bawaan yang lebih baik pada server yang Anda pelihara: log lewat journalctl, kejar jika mesin mati, dan status per-eksekusi yang dapat diperiksa. Setup minimal:
# /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 # awasi eksekusi
Persistent=true adalah bagian yang cron tidak bisa lakukan: jika server mati saat waktu eksekusi, pekerjaan menembak sekali saat boot alih-alih melewati diam-diam.
Ke mana hasil pergi
Jaga sederhana dan cocokkan dengan volume: SQLite untuk data terstruktur yang akan Anda kueri (satu berkas, tanpa penyiapan), CSV untuk dump tabular cepat, atau penyimpanan objek kompatibel-S3 saat hasil melampaui mesin atau Anda mau mereka di-luar-server. Rotasi log Anda (logrotate atau batas journald) agar scraper cerewet tidak perlahan mengisi disk.
Bagian jujur: IP keluar dan reputasi
Ini detail yang menentukan apakah scraper Anda bekerja selama seminggu atau diblokir di hari pertama.
Pada paket NAT, lalu lintas keluar berbagi satu IP keluar dengan pelanggan lain. Reputasi IP itu dibagi — tetangga yang men-scrape target yang sama bisa membuat alamat dibatasi-tarif sebelum Anda mengirim satu permintaan. Baik untuk scraping ringan dan sesekali; kewajiban pada volume.
IP khusus memberi Anda reputasi keluar Anda sendiri — perilaku orang lain tidak memengaruhinya. Tapi ia memotong dua arah: scraping agresif membakar IP bersih Anda sendiri, dan begitu target memblokirnya, ia diblokir. IP khusus adalah kendali, bukan kekebalan.
Pada skala nyata, Anda butuh pool proxy eksternal. Tidak ada IP tunggal — bersama atau khusus — yang bisa menyebar beban ke banyak alamat, yang merupakan apa yang dibutuhkan scraping serius terhadap target yang dibatasi-tarif-IP. Proxy adalah lapisan generik pihak-ketiga yang Anda tambahkan di atas; VPS menjalankan scraper, pool proxy menyediakan alamat. Jangan harap satu IP server melakukan pekerjaan pool proxy.
Etika dan AUP — bukan opsional
Scraping tinggal di zona abu-abu legal dan etis, jadi berpikirlah jernih:
- Hormati batas tarif dan robots.txt. Batasi permintaan Anda. Scraper yang sopan terlihat seperti lalu lintas; yang tidak sopan terlihat seperti serangan.
- Jangan DoS target Anda. Menghantam situs hingga tumbang bukan scraping, itu penolakan-layanan — dan itu pelanggaran penggunaan di sini yang membuat layanan diakhiri.
- Scrape hanya yang Anda diizinkan. Pengumpulan data yang legal dan diizinkan adalah garisnya. Lewati dan itu tanggung jawab Anda.
Kesimpulan
VPS adalah rumah yang tepat untuk scraper: selalu-aktif, terjadwal, dan jauh dari IP rumah Anda. Cocokkan paket ke stack — Nano $3 untuk httpx, Micro $5 hingga Small $8 untuk Playwright — jadwalkan dengan timer systemd, dan jujurlah soal IP: keluar bersama berbagi reputasi, IP khusus milik Anda untuk dibangun atau dibakar, dan skala nyata berarti pool proxy. Kunci mesinnya dulu dengan daftar periksa keamanan VPS baru, tentukan ukurannya dengan tepat memakai panduan penentuan ukuran VPS, dan jika privasi membayar-tanpa-kartu penting, rincian VPS anonim adalah versi jujurnya. Scrape dengan bertanggung jawab — AUP itu nyata.
Siap scraping? Paket Micro adalah awal yang solid; crawl serentak besar lebih baik di Small.
Komentar
Belum ada komentar. Jadilah yang pertama.