kdaip/echobot/scrapling
Claude Code and agent skill by kdaip/echobot
- community
Checking that the SKILL.md file is still in the repository.
Scrape web pages using Scrapling with anti-bot bypass (like Cloudflare Turnstile), stealth headless browsing, spiders framework, adaptive scraping, and JavaScript rendering. Use when asked to scrape, crawl, or extract data from websites; web_fetch fails; the site has anti-bot protections; write Python code to scrape/crawl; or write spiders.
Install
npx vskill@latest install kdaip/echobot/scraplingSKILL.md
Scrapling
Scrapling is an adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl.
Its parser learns from website changes and automatically relocates your elements when pages update. Its fetchers bypass anti-bot systems like Cloudflare Turnstile out of the box. And its spider framework lets you scale up to concurrent, multi-session crawls with pause/resume and automatic proxy rotation — all in a few lines of Python. One library, zero compromises.
Blazing fast crawls with real-time stats and streaming. Built by Web Scrapers for Web Scrapers and regular users, there's something for everyone.
Requires: Python 3.10+
This is the official skill for the scrapling library by the library author.
Setup (once)
Create a virtual Python environment through any way available, like venv, then inside the environment do:
pip install "scrapling[all]>=0.4.2"
Then do this to download all the browsers' dependencies:
Make note of the scrapling binary path and use it instead of scrapling from now on with all commands (if scrapling is not on $PATH).
Docker
Another option if the user doesn't have Python or doesn't want to use it is to use the Docker image, but this can be used only in the commands, so no writing Python code for scrapling this way:
or
CLI Usage
The scrapling extract command group lets you download and extract content from websites directly without writing any code.
Usage pattern
- Choose your output format by changing the file extension. Here are some examples for the
scrapling extract getcommand: - Convert the HTML content to Markdown, then save it to the file (great for documentation):
scrapling extract get "https://blog.example.com" article.md - Save the HTML content as it is to the file:
scrapling extract get "https://example.com" page.html - Save a clean version of the text content of the webpage to the file:
scrapling extract get "https://example.com" content.txt - Output to a temp file, read it back, then clean up.
- All commands can use CSS selectors to extract specific parts of the page through
--css-selectoror-s.
Which command to use generally:
- Use `get` with simple websites, blogs, or news articles.
- Use `fetch` with modern web apps, or sites with dynamic content.
- Use `stealthy-fetch` with protected sites, Cloudflare, or anti-bot systems.
When unsure, start withget. If it fails or returns empty content, escalate tofetch, thenstealthy-fetch. The speed offetchandstealthy-fetchis nearly the same, so you are not sacrificing anything.
Key options (requests)
Those options are shared between the 4 HTTP request commands:
| Option | Input type | Description | |
|---|---|---|---|
| -H, --headers | TEXT | HTTP headers in format "Key: Value" (can be used multiple times) | |
| --cookies | TEXT | Cookies string in format "name1=value1; name2=value2" | |
| --timeout | INTEGER | Request timeout in seconds (default: 30) | |
| --proxy | TEXT | Proxy URL in format "http://username:password@host:port" | |
| -s, --css-selector | TEXT | CSS selector to extract specific content from the page. It returns all matches. | |
| -p, --params | TEXT | Query parameters in format "key=value" (can be used multiple times) | |
| --follow-redirects / --no-follow-redirects | None | Whether to follow redirects (default: True) | |
| --verify / --no-verify | None | Whether to verify SSL certificates (default: True) | |
| --impersonate | TEXT | Browser to impersonate. Can be a single browser (e.g., Chrome) or a comma-separated list for random selection (e.g., Chrome, Firefox, Safari). | |
| --stealthy-headers / --no-stealthy-headers | None | Use stealthy browser headers (default: True) |
Options shared between post and put only:
| Option | Input type | Description | |
|---|---|---|---|
| -d, --data | TEXT | Form data to include in the request body (as string, ex: "param1=value1¶m2=value2") | |
| -j, --json | TEXT | JSON data to include in the request body (as string) |
Examples:
Key options (browsers)
Both (fetch / stealthy-fetch) share options:
| Option | Input type | Description | |
|---|---|---|---|
| --headless / --no-headless | None | Run browser in headless mode (default: True) | |
| --disable-resources / --enable-resources | None | Drop unnecessary resources for speed boost (default: False) | |
| --network-idle / --no-network-idle | None | Wait for network idle (default: False) | |
| --real-chrome / --no-real-chrome | None | If you have a Chrome browser installed on your device, enable this, and the Fetcher will launch an instance of your browser and use it. (default: False) | |
| --timeout | INTEGER | Timeout in milliseconds (default: 30000) | |
| --wait | INTEGER | Additional wait time in milliseconds after page load (default: 0) | |
| -s, --css-selector | TEXT | CSS selector to extract specific content from the page. It returns all matches. | |
| --wait-selector | TEXT | CSS selector to wait for before proceeding | |
| --proxy | TEXT | Proxy URL in format "http://username:password@host:port" | |
| -H, --extra-headers | TEXT | Extra headers in format "Key: Value" (can be used multiple times) |
This option is specific to fetch only:
| Option | Input type | Description | |
|---|---|---|---|
| --locale | TEXT | Specify user locale. Defaults to the system default locale. |
And these options are specific to stealthy-fetch only:
| Option | Input type | Description | |
|---|---|---|---|
| --block-webrtc / --allow-webrtc | None | Block WebRTC entirely (default: False) | |
| --solve-cloudflare / --no-solve-cloudflare | None | Solve Cloudflare challenges (default: False) | |
| --allow-webgl / --block-webgl | None | Allow WebGL (default: True) | |
| --hide-canvas / --show-canvas | None | Add noise to canvas operations (default: False) |
Examples:
Notes
- ALWAYS clean up temp files after reading
- Prefer
.mdoutput for readability; use.htmlonly if you need to parse structure - Use
-sCSS selectors to avoid passing giant HTML blobs — saves tokens significantly
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingechobot/skills/scrapling/SKILL.md
Popularity
- Repository stars
- 552
- Repository forks
- 47
- 7-day trend score
- 32
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/kdaip/echobot/scrapling)