Advanced web scraping with Cloudflare bypass, JavaScript rendering, and structured data extraction...
Advanced scraping that handles modern anti-bot protections.
web_fetch returns 403/Cloudflare# Just prepend r.jina.ai to any URL
curl "https://r.jina.ai/https://example.com"
# Or use the script
node skills/web-scraping-pro/scripts/jina-fetch.js "https://example.com"
# Install
pip install crawl4ai
playwright install
# Use via script
python skills/web-scraping-pro/scripts/crawl4ai-fetch.py "https://example.com"
# Set API key
export FIRECRAWL_API_KEY=your_key
# Fetch
node skills/web-scraping-pro/scripts/firecrawl-fetch.js "https://example.com"
scripts/jina-fetch.jsFetch via Jina Reader API. Free, no setup, handles most sites.
scripts/crawl4ai-fetch.pyFull browser scraping with Crawl4AI. Most capable option.
scripts/firecrawl-fetch.jsFirecrawl API for reliable scraping.
scripts/multi-fetch.jsTry multiple methods in fallback order.
scripts/extract-structured.pyExtract structured data (tables, lists, specific elements).
# Basic fetch (returns markdown)
curl "https://r.jina.ai/https://example.com"
# Search (returns search results)
curl "https://s.jina.ai/your+search+query"
# With options
curl "https://r.jina.ai/https://example.com" \
-H "X-Return-Format: text" \
-H "X-Target-Selector: main"
from crawl4ai import WebCrawler
crawler = WebCrawler()
crawler.warmup()
result = crawler.run(
url="https://example.com",
word_count_threshold=10,
extraction_strategy="LLMExtractionStrategy", # AI extraction
chunking_strategy="RegexChunking"
)
print(result.markdown) # Clean markdown
print(result.extracted_content) # Structured data
| Tool | Cloudflare | JS Render | Speed | Cost |
|---|---|---|---|---|
| Jina Reader | β Some | β Yes | Fast | Free |
| Crawl4AI | β Yes | β Yes | Slow | Free |
| Firecrawl | β Yes | β Yes | Fast | Freemium |
| Browser skill | β Yes | β Yes | Slow | Free |
# Use Crawl4AI with stealth
python skills/web-scraping-pro/scripts/crawl4ai-fetch.py "https://site.com" --stealth
# Jina handles most JS
# For complex SPAs, use Crawl4AI with wait
python skills/web-scraping-pro/scripts/crawl4ai-fetch.py "https://spa.com" --wait 5000
# Use batch script with delays
node skills/web-scraping-pro/scripts/batch-scrape.js urls.txt --delay 3000