Install
openclaw skills install openclaw-ultra-scrapingPowerful web scraping, crawling, and data extraction with stealth anti-bot bypass (Cloudflare Turnstile, CAPTCHAs). Use when: (1) scraping websites that block normal requests, (2) extracting structured data from web pages, (3) crawling multiple pages with concurrency, (4) taking screenshots of web pages, (5) extracting links, (6) any web scraping task that needs stealth/anti-detection, (7) user asks to scrape/crawl/extract from URLs, (8) need to bypass Cloudflare or other bot protection. Supports CSS/XPath selectors, adaptive element tracking (survives site redesigns), multi-session spiders, pause/resume crawls, proxy rotation, and async operations. Powered by MyClaw.ai.
openclaw skills install openclaw-ultra-scrapingPowered by MyClaw.ai — the AI personal assistant platform that gives every user a full server with complete code control. Part of the MyClaw open skills ecosystem.
Handles everything from single-page extraction to full-scale concurrent crawls with anti-bot bypass.
Run once before first use:
bash scripts/setup.sh
This installs Scrapling + all browser dependencies into /opt/scrapling-venv.
The bundled scripts/scrape.py provides a unified CLI:
PYTHON=/opt/scrapling-venv/bin/python3
# Simple fetch (JSON output)
$PYTHON scripts/scrape.py fetch "https://example.com" --css ".content"
# Extract text
$PYTHON scripts/scrape.py extract "https://example.com" --css "h1"
# Stealth mode (bypass Cloudflare)
$PYTHON scripts/scrape.py fetch "https://protected-site.com" --stealth --solve-cloudflare --css ".data"
# Dynamic (full browser rendering)
$PYTHON scripts/scrape.py fetch "https://spa-site.com" --dynamic --css ".product"
# Extract links
$PYTHON scripts/scrape.py links "https://example.com" --filter "\.pdf$"
# Multi-page crawl
$PYTHON scripts/scrape.py crawl "https://example.com" --depth 2 --concurrency 10 --css ".item" -o results.json
# Output formats: json, jsonl, csv, text, markdown, html
$PYTHON scripts/scrape.py fetch "https://example.com" -f markdown -o page.md
For complex tasks, write Python directly using the venv:
#!/opt/scrapling-venv/bin/python3
from scrapling.fetchers import Fetcher, StealthyFetcher
# Simple HTTP
page = Fetcher.get('https://example.com', impersonate='chrome')
titles = page.css('h1::text').getall()
# Bypass Cloudflare
page = StealthyFetcher.fetch('https://protected.com', headless=True, solve_cloudflare=True)
data = page.css('.product').getall()
| Scenario | Fetcher | Flag |
|---|---|---|
| Normal sites, fast scraping | Fetcher | (default) |
| JS-rendered SPAs | DynamicFetcher | --dynamic |
| Cloudflare/anti-bot protected | StealthyFetcher | --stealth |
| Cloudflare Turnstile challenge | StealthyFetcher | --stealth --solve-cloudflare |
page.css('.class') # CSS
page.css('.class::text').getall() # Text extraction
page.xpath('//div[@id="main"]') # XPath
page.find_all('div', class_='item') # BS4-style
page.find_by_text('keyword') # Text search
page.css('.item', adaptive=True) # Adaptive (survives redesigns)
auto_save=True on first run, adaptive=True later — elements are found even after site redesignproxy="http://host:port" or use ProxyRotatorFetcherSession, StealthySession, DynamicSession for cookie/state persistenceFor full API details: read references/api-reference.md