用途
Crawl4AI 技能用于网页爬取与数据提取,适合需要抓取网站、提取结构化数据、处理 JavaScript 密集型页面、批量爬取多个 URL 或构建自动化采集流程的场景。它基于 Crawl4AI 库,提供完整 SDK 参考、常用模式脚本和优化工作流。
主要能力
- 基础爬取:通过 AsyncWebCrawler 与 arun() 执行爬取,返回 CrawlResult,包含 HTML、Markdown、链接、媒体和元数据。
- 配置控制:BrowserConfig 控制浏览器实例(headless、视口尺寸、user_agent、cookies、headers);CrawlerRunConfig 控制单次爬取(page_timeout、wait_for、cache_mode、js_code、screenshot、session_id)。
- Markdown 生成:生成干净、格式良好的 Markdown,适合 LLM 使用;支持 PruningContentFilter 与 BM25ContentFilter 进行内容过滤,得到 fit_markdown;可通过 excluded_tags、css_selector、remove_forms、链接排除等选项定制。
- 数据提取:支持基于 Schema 的提取(生成一次 Schema 后复用,无需 LLM)、手动 CSS/JSON 提取(JsonCssExtractionStrategy)、以及 LLM 提取(LLMExtractionStrategy)。
- 高级模式:深度爬取(发现并爬取页面链接)、批量与多 URL 并发处理(arun_many,max_concurrent 控制并发)、会话与认证(session_id 复用登录状态)、动态内容处理(wait_for、js_code、滚动与点击加载)、代理与反检测配置。
使用方式
安装检查与初始化:
crawl4ai-doctor
crawl4ai-setup
基础首次爬取:
import asyncio
from crawl4ai import AsyncWebCrawler
async def main():
async with AsyncWebCrawler() as crawler:
result = await crawler.arun("https://example.com")
print(result.markdown[:500])
asyncio.run(main())
使用附带脚本:
python scripts/basic_crawler.py https://example.com
python scripts/batch_crawler.py urls.txt
python scripts/extraction_pipeline.py --generate-schema https://shop.com "extract products"
Schema 提取两步法:先用 LLM 生成 Schema,再用 Schema 快速提取(无需 LLM)。
适用场景
- 文档站点转 Markdown,供 LLM 消费。
- 电商产品监控(价格、库存),使用 Schema 避免 LLM 成本。
- 新闻聚合,多源并发爬取并提取相关文章。
- 研究与数据收集,如学术论文的聚焦提取。
限制
资料未提供具体的收费、价格、平台支持范围或效果保证。部分高级功能(如虚拟滚动 virtual_scroll_config、C4A 脚本、Docker 部署模式)仅被提及,详细用法需参考完整 SDK 参考文档。反检测与代理配置的实际效果、合规性及目标网站政策需用户自行评估。