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.example
menjadi.env
dan sesuaikan konfigurasi jika diperlukan
npm run dev
Server 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 bersamaanMAX_TABS_PER_BROWSER
: Jumlah maksimum tab per browserBROWSER_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