Scraper JS adalah layanan API untuk melakukan web scraping menggunakan Node.js, Elysia, dan Playwright. Proyek ini menggunakan arsitektur browser pool untuk efisiensi dan skalabilitas scraping.
- Endpoint scraping: /api/scrape
- Endpoint kesehatan: /api/scrape/health
- Pool browser otomatis dengan pengaturan jumlah browser dan tab
- Validasi URL untuk keamanan
- Monitoring metrik pool: /api/scrape/metrics
- Clone repository ini
- Install dependencies:
npm install 
- (Opsional) Salin .env.examplemenjadi.envdan sesuaikan konfigurasi jika diperlukan
npm run devServer akan berjalan di http://localhost:8000
Scrape halaman web dan dapatkan HTML-nya.
- Body:
{ "url": "https://example.com" }
- Response:
{ "html": "<html>...</html>", "status": 200, "success": true, "error": null }
Cek status kesehatan API.
Lihat statistik pool browser (jumlah browser aktif, tab, antrean, dsb).
Beberapa variabel penting yang dapat diatur di .env:
- MAX_BROWSERS: Jumlah maksimum browser yang berjalan bersamaan
- MAX_TABS_PER_BROWSER: Jumlah maksimum tab per browser
- BROWSER_TYPE: Jenis browser (chromium/firefox/webkit)
- PAGE_NAVIGATION_TIMEOUT_MS: Timeout navigasi halaman (ms)
- BROWSER_IDLE_TIMEOUT_MS: Timeout browser idle sebelum ditutup (ms)
- POOL_SCAN_INTERVAL_MS: Interval pengecekan pool (ms)
curl -X POST http://localhost:8000/api/scrape \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com"}'- Pool mengelola beberapa instance browser Playwright.
- Jika browser penuh, request akan diantre.
- Browser idle otomatis ditutup untuk menghemat resource.
MIT