Crawl4AI 封装了无头浏览器(Playwright)和 Markdown 内容管道,用于常规 curl 抓不到内容的场景:JavaScript 渲染页面、SPA、登录后内容、无限滚动、多 URL 并发以及可重复的 schema 抽取。它提供两套接口:CLI(crwl)用于快速脚本化命令,Python SDK(AsyncWebCrawler)用于完整编程控制。
安装:pip install crawl4ai,然后运行 crawl4ai-setup,可用 crawl4ai-doctor 验证。CLI 基本用法:crwl https://example.com 返回 Markdown;crwl https://example.com -o markdown;crwl https://example.com -o json -v --bypass-cache。SDK 用法:from crawl4ai import AsyncWebCrawler,在 async 上下文中 await crawler.arun("https://example.com"),读取 result.markdown。
主要能力包括:生成干净 Markdown,可用 BM25 或 pruning 内容过滤器去除噪声(BM25ContentFilter、DefaultMarkdownGenerator);schema 抽取(一次 LLM 生成 CSS schema 后反复使用,无需 LLM,速度快且零成本),也支持按 URL 调用 LLM 的一次性抽取;多 URL 批处理(arun_many() 或 batch_crawl.py / batch_extract.py,支持 --max-concurrent);抓取前可用 AsyncUrlSeeder、SeedingConfig、DomainMapper 做 URL 发现;会话与登录复用(session_id);反检测、代理与 init_scripts;以及对已有 HTML(raw: 或 file://)渲染截图、PDF、MHTML。配置分为 BrowserConfig 与 CrawlerRunConfig,CLI 可用 -B/-b、-C/-c、-e/-s、-f 传入 YAML 或参数。常用参数有 page_timeout、wait_for、cache_mode、js_code、css_selector;建议超时 30 秒,JS 重页面 60 秒以上。
限制与注意:静态 HTML 页面、本地文件转换、仅需读一页、需要交互填写表单等场景不适合本工具,应改用其他方案;遵循速率限制并在请求间加延迟;schema 抽取需先用 LLM 生成 schema。许可证为 MIT 或 Apache-2.0 双许可。