scrapling

Scrapes web pages via HTTP, stealth browser automation, and spider crawling with Scrapling.

Updated Jul 7, 2026
One-click install
npx skills add https://github.com/episvr/USTB-2026-SummerInternship --skill scrapling-episvr
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: scrapling
Source: https://github.com/episvr/USTB-2026-SummerInternship/tree/main/hermes-config/optional-skills/research/scrapling
Command: npx skills add https://github.com/episvr/USTB-2026-SummerInternship --skill scrapling-episvr

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires scrapling.

What problem does it solve? Extracting data from modern websites often fails due to JavaScript rendering, Cloudflare protection, and bot detection. This Skill provides CLI and Python workflows to fetch static pages, render JS-heavy SPAs, bypass anti-bot systems, and crawl multi-page sites. ## Core Features & Use Cases - Three Fetching Strategies: Use Fetcher for fast HTTP requests, DynamicFetcher for JS-rendered pages, and StealthyFetcher for Cloudflare-protected sites. - CLI Extraction: Run scrapling extract commands to save pages as HTML, Markdown, text, or JSON without writing code. - Spider Framework: Build multi-page crawlers with link following, concurrent requests, multi-session routing, and pause/resume checkpoints. - Use Case: Scrape a Cloudflare-protected product listing site by using StealthyFetcher with solve_cloudflare=True, then extract prices with CSS selectors and export results to JSON. ## Quick Start Use the scrapling skill to extract the main content of https://example.com into a Markdown file.

Frequently Asked Questions about scrapling

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I scrape a Cloudflare-protected website in Python?▼

Use Scrapling's StealthyFetcher with solve_cloudflare=True to bypass Cloudflare Turnstile and bot detection. Note that solving Cloudflare adds 5-15 seconds per fetch, so enable it only when the target site requires it.

How to scrape JavaScript-rendered pages without writing browser code?▼

Use DynamicFetcher.fetch() with headless=True to render JS-heavy pages and SPAs. You can wait for specific elements with wait_selector, block resources for speed with disable_resources, or pass a custom page_action function for scrolling and clicking.

What is the difference between Fetcher, DynamicFetcher, and StealthyFetcher?▼

Fetcher makes fast HTTP requests for static pages and APIs. DynamicFetcher runs a real browser for JS-rendered content. StealthyFetcher adds anti-fingerprinting and Cloudflare bypass for protected sites, at the cost of higher resource usage.

Why does Scrapling fail with browser errors after pip install?▼

Browser binaries are not installed by pip alone. You must run scrapling install after pip install "scrapling[all]", otherwise DynamicFetcher and StealthyFetcher will fail because they require a real browser.

Does Scrapling support resuming interrupted crawls?▼

Yes, the Spider framework supports pause and resume via checkpoints. Pass crawldir to the spider constructor, press Ctrl+C to pause, and re-run the same command to resume crawling from the saved checkpoint.

What are the limitations of stealth web scraping with Scrapling?▼

StealthyFetcher runs a real browser, so concurrent usage must be limited to control resource consumption. Timeout units also differ: DynamicFetcher and StealthyFetcher use milliseconds while Fetcher uses seconds. Always check robots.txt and site ToS before scraping.