Skip to main content

lightpanda-scrape

Headless browser (Lightpanda) untuk scraping data dari site yang diproteksi Cloudflare / butuh JS exec — alternatif Chrome/Chromium yang 9x lebih cepat & 16x lebih ringan. Cocok untuk fetch economic calendar, market data web, data ekstraksi tanpa render UI.

Source facts

Repository
herbras/hyperliquid-agent
Last source activity
May 2, 2026 at 17:26
Detected SKILL.md language
Indonesian
Stars
0
Forks
0

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
5 files

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
lightpanda-scrape
description
Headless browser (Lightpanda) untuk scraping data dari site yang diproteksi Cloudflare / butuh JS exec — alternatif Chrome/Chromium yang 9x lebih cepat & 16x lebih ringan. Cocok untuk fetch economic calendar, market data web, data ekstraksi tanpa render UI.
version
1.0.0
metadata
{"hermes":{"tags":["scraping","browser","automation","cloudflare","web-data"],"category":"data-fetch","requires_toolsets":["terminal"],"config":["[Truncated]","[Truncated]"]}}
# Lightpanda Scrape — headless browser untuk data fetch Gunakan saat: - Site target proteksi **Cloudflare Turnstile** dan agent-browser/Chromium default kena block. - Butuh **eksekusi JS** (SPA, XHR-loaded data) — `curl` doang ga cukup. - Butuh footprint kecil di server (Lightpanda ~16x lebih hemat memory dari Chromium, start instant). Jangan gunakan kalau: - Endpoint udah JSON/REST plain — pakai `curl` / `urllib` langsung. - Butuh render visual (screenshot, PDF, video) — pakai full Chromium. - Site pasang **Google reCAPTCHA v3** atau anti-bot fingerprint berat — Lightpanda ga akan lolos itu. ## Install (sekali per server) ```bash curl -fsSL https://pkg.lightpanda.io/install.sh | bash ``` Binary terpasang di `$HOME/.local/bin/lightpanda`. Pastikan `$HOME/.local/bin` masuk `PATH`. Verify: ```bash $HOME/.local/bin/lightpanda --help | head -3 # usage: lightpanda command [options] [URL] ``` Lengkap: lihat `references/install-on-server.md` (Ubuntu, Debian, macOS, systemd unit, troubleshooting binary release). ## 3 mode pemakaian | Mode | Untuk apa | Komentar | |---|---|---| | **`fetch` (CLI)** | One-shot dump halaman publik (HTML / markdown / semantic tree) | Paling simple, no daemon | | **`serve` (CDP)** | Multi-step navigation, eksekusi XHR dari page context, bypass CF challenge | Perlu node + `playwright-core` atau `puppeteer-core` | | **`mcp`** | Workflow agentic via MCP tools (`goto`, `click`, `fill`, `evaluate`) | Setup MCP server di config Claude Code | ### Mode 1 — CLI fetch (paling cepat) ```bash lightpanda fetch \ --dump markdown \ --wait-until networkidle \ --wait-ms 10000 \ https://example.com/page ``` `--dump` opsi: `html` | `markdown` | `semantic_tree` | `semantic_tree_text`. Tambah `--strip-mode js,css,ui` untuk buang noise. Output ke stdout. ### Mode 2 — CDP serve + script (untuk Cloudflare bypass) ```bash # 1. Start CDP server (background) lightpanda serve --host 127.0.0.1 --port 9223 > /tmp/lp.log 2>&1 & # 2. Connect dari Node script via playwright-core node fetch-via-cdp.js ``` Trick penting untuk **bypass Cloudflare Turnstile**: **jangan navigate ke halaman Turnstile-protected**, cukup `goto('about:blank')` lalu `page.evaluate()` panggil endpoint XHR target. Cloudflare cuma cek fingerprint saat halaman utama di-load — endpoint API biasanya cuma rate-limit, tidak Turnstile-protected. Lengkap: lihat `references/cloudflare-bypass.md` (resep + script siap-pakai). ### Mode 3 — MCP server ```bash claude mcp add lightpanda -- $HOME/.local/bin/lightpanda mcp ``` Lalu agent bisa pakai tool `goto`, `markdown`, `evaluate`, `click`, `fill`, `waitForSelector` langsung. Cocok untuk eksplorasi interaktif. Bukan pilihan untuk cron production (tergantung daemon MCP). ## Procedure standar untuk scraping site CF-protected 1. **Tes endpoint langsung dulu** dengan `curl` + UA browser. Banyak site cuma proteksi halaman utama, bukan endpoint XHR. Kalau jalan → STOP, ga perlu Lightpanda. 2. Kalau curl 403/Cloudflare HTML challenge → baru pakai Lightpanda CDP mode dengan trick `about:blank` + `page.evaluate(fetch)`. 3. Untuk data yang murni di HTML utama (no XHR) → `lightpanda fetch --dump html` cukup. 4. **Jangan run cron-frequency tinggi** — site target bisa naikin proteksi. Tetap polite: min 5-15 menit interval, throttle, cache. ## Pitfalls - `lightpanda fetch` **GET-only**. Kalau API target POST, harus pakai `serve` mode + `page.evaluate(fetch)`. - **CDP: 1 connection per process.** Untuk paralel, start beberapa instance di port beda. Lightpanda start instant, jadi murah. - **State reset on disconnect.** Tiap CDP connect harus `newContext` + `newPage`. Cookies & localStorage hilang saat ws close. - `serve` daemon ga auto-restart. Bungkus pakai systemd / supervisor untuk production (lihat `references/install-on-server.md`). ## Verification Setelah install: ```bash lightpanda fetch --dump html https://example.com | grep -c "Example Domain" # Output: 1 (kalau jalan) ``` Setelah CDP serve start: ```bash curl -s http://127.0.0.1:9223/json/version | python3 -m json.tool | head # Output: {"Browser": "Lightpanda/...", ...} ``` ## Resep yang sudah terbukti - `references/fetch-investing-calendar.md` — fetch economic calendar (CPI/FOMC/NFP) dari investing.com via Lightpanda CDP. Sudah dipakai untuk generate `hyperliquid/events.json`. - `references/cloudflare-bypass.md` — pola umum lolos CF Turnstile. - `references/install-on-server.md` — install di server (Linux/macOS), PATH setup, systemd, troubleshooting.
View on GitHub