crawl4ai

Crawl websites and extract structured data using the Crawl4AI Python library.

Updated May 10, 2026
One-click install
npx skills add https://github.com/cookkie03/skills --skill crawl4ai-cookkie03
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: crawl4ai
Source: https://github.com/cookkie03/skills/tree/main/crawl4ai
Command: npx skills add https://github.com/cookkie03/skills --skill crawl4ai-cookkie03

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires crawl4ai, packaging, and includes scripts (resource) and references (resource) components.

What problem does it solve? Scraping modern websites requires handling JavaScript rendering, bot detection, sessions, and inconsistent page structures, which makes ad-hoc scraping scripts fragile and slow to build. This Skill provides ready-to-use Crawl4AI patterns and scripts for turning web pages into clean markdown or structured JSON data. ## Core Features & Use Cases - Markdown Extraction: Convert any webpage into clean, LLM-ready markdown with optional content filters like BM25 and pruning. - Structured Data Extraction: Generate a CSS extraction schema once with an LLM, then reuse it for fast, LLM-free extraction across similar pages. - Batch & Concurrent Crawling: Crawl hundreds of URLs concurrently with arun_many, rate limiting, and per-page markdown output. - Dynamic Content Handling: Execute JavaScript, wait for selectors, manage login sessions, and configure proxies for JavaScript-heavy or authenticated sites. - Use Case: Monitor an e-commerce catalog by generating a product schema once, then running batch crawls daily to extract prices and availability without recurring LLM costs. ## Quick Start Use the crawl4ai skill to crawl https://example.com and save the page content as clean markdown.

Frequently Asked Questions about crawl4ai

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

FAQPage Schema
How do I extract structured data from a website with Crawl4AI?

Generate a CSS extraction schema once using an LLM with extraction_pipeline.py --generate-schema, then reuse it with JsonCssExtractionStrategy for fast extraction without further LLM calls. This is 10-100x more efficient than per-request LLM extraction.

How do I crawl multiple URLs concurrently in Python?

Use AsyncWebCrawler's arun_many method with a list of URLs and a max_concurrent parameter to control parallelism. The batch_crawler.py script accepts a file of URLs and saves results as JSON plus individual markdown files.

Does Crawl4AI support JavaScript-heavy websites?

Yes, Crawl4AI runs a real browser via Playwright and renders JavaScript by default. Use the wait_for parameter with a CSS selector or JS condition, the js_code parameter to execute custom scripts, and increase page_timeout for slow-loading pages.

Can Crawl4AI handle login and authenticated pages?

Yes, use the session_id parameter in CrawlerRunConfig to persist a browser session across crawls. Perform the login with js_code in the first crawl, then reuse the same session_id for subsequent requests to protected pages.

Why is my Crawl4AI crawl getting blocked by bot detection?

Bot detection triggers on headless browsers and rapid requests. Try headless=False, set a realistic user_agent, configure proxy_config in BrowserConfig, and add delays of 2-5 seconds between requests with asyncio.sleep.

When should I use LLM extraction instead of CSS schema extraction?

Use LLM extraction only for complex, irregular content or one-time extractions where no repeating structure exists. For repetitive page patterns like product listings, schema-based CSS extraction is faster and avoids per-request LLM costs.