scrape-cloudflare-site · git:20261019.31407e3 · 2026-10-19 · sha256 d500bfd4a47f5b9c
scrape-cloudflare-site git:20261019.31407e3A
Immutable. This exact content never changes and is served at /api/v1/blob/d500bfd4a47f5b9c.
--- name: scrape-cloudflare-site description: Fetch web pages (e.g. novel chapters) that return a Cloudflare "Just a moment" page to curl or headless Chrome. --- # Scraping pages behind Cloudflare Do NOT try direct curl or headless Chrome first; both get the challenge page and waste turns. 1. Fetch through the reader proxy: `curl -s "https://r.jina.ai/<full original URL>"`. The real text follows a `Markdown Content:` marker. 2. Write ONE Python script that loops over all pages and saves each to disk, rather than one tool call per page. Skip files already saved so reruns resume. 3. Sleep ~1s between requests. A ~240-byte body or `RateLimitTriggeredError` means HTTP 429: wait 10-30s and retry. 4. Multi-page chapters may continue at `<name>_2.html`; fetch and join them. 5. After the loop, print count and byte size per file; re-fetch any that are tiny. 6. If the proxy returns a 403 `AbuseAlleviationError` saying "blocked until <time>", STOP. Do not poll or loop; every retry extends the block. Tell the user the time and finish.