Crawl4AI 完整指南:10分钟把网页转成大模型可用的Markdown Crawl4AI 完整指南10分钟把网页转成大模型可用的Markdown【免费下载链接】crawl4ai Crawl4AI: Open-source LLM Friendly Web Crawler Scraper. Dont be shy, join here: https://discord.gg/jP8KfhDhyN项目地址: https://gitcode.com/GitHub_Trending/craw/crawl4aiCrawl4AI 是一个开源的网页爬虫与抓取器面向构建 RAG、AI Agent 和数据管道的开发者。它用真实浏览器默认无头 Chromium加载页面自动处理 JavaScript 动态内容并把结果直接输出为干净、可喂给大模型的 Markdown。通过 pip 免费安装简单任务几行 Python 即可跑通。它要解决的核心问题是把杂乱的 HTML 变成模型和数据库能直接使用的结构化数据。它解决什么问题用 requests 这类库抓 JS 渲染的页面只拿到一份空骨架 HTML自己写浏览器自动化又要手工调等待时间和元素定位。页面里混着导航栏、广告、推荐位从原始 HTML 整理成干净文本工作量常常比抓取本身更大。想从列表页批量提取标题、价格这类字段但每个站点的 HTML 结构都不一样解析规则得反复重写。它做得最好的三件事真实浏览器渲染动态内容。AsyncWebCrawler默认启动一个无头 Chromium页面里的 JS 会真实执行对加载更多按钮、无限滚动这类交互可以在CrawlerRunConfig里注入js_code点击或用scan_full_pageTrue模拟滚动lazy-load 图片和 iframe 内容也会被等完、抓全。效果是一个需要点三次下一页才显示完的列表页不需要你写一套 Selenium 脚本。自动产出干净的 Markdown。抓取完成后DefaultMarkdownGenerator把 HTML 转成带标题层级和表格的 Markdown挂上PruningContentFilter或BM25ContentFilter后result.markdown.fit_markdown会再裁掉低相关噪音页面链接也会被转成带编号的引用列表。对 RAG 场景来说这份输出不需要再经过一轮清洗。双轨结构化提取。需要 JSON 时有两条路JsonCssExtractionStrategy用 CSS/XPath 选择器加 schema 直接取字段不花一分钱 token而且支持用 LLM 一次性生成可复用的 schemaLLMExtractionStrategy则接入底层 litellm 支持的任意模型openai/gpt-4o或本地ollama/llama3.3按 Pydantic schema 校验输出。结构规整的页面走前者结构杂乱的页面走后者可以混用。十分钟上手pip install -U crawl4ai crawl4ai-setup # 自动安装 Playwright 浏览器 crawl4ai-doctor # 检查环境是否就绪装完后跑最短示例import asyncio from crawl4ai import AsyncWebCrawler async def main(): async with AsyncWebCrawler() as crawler: result await crawler.arun(urlhttps://example.com) print(result.markdown) asyncio.run(main())逐行说明async with AsyncWebCrawler()启动默认无头浏览器并在结束时自动关闭arun()抓取页面并等待渲染完成result.markdown就是转换后的 Markdown。不想写 Python 时终端里crwl https://example.com -o markdown一条命令等价于上面的脚本。注意缓存默认是CacheMode.BYPASS每次取新鲜内容要提速可显式改成CacheMode.ENABLED。跑一个真实任务任务从产品列表页批量提取标题 价格落成 JSON。输入是一个页面 URL或抓好的 HTML。配置只需一份 schemabaseSelector指定重复块的定位fields里每个字段一个选择器。schema { name: Products, baseSelector: div.item, fields: [ {name: title, selector: h2, type: text}, {name: price, selector: .price, type: text} ] } async with AsyncWebCrawler() as crawler: config CrawlerRunConfig(extraction_strategyJsonCssExtractionStrategy(schema)) result await crawler.arun(urlproduct_url, configconfig) print(json.loads(result.extracted_content))输出是extracted_content里的 JSON 字符串每个商品一个对象可直接入库。schema 可以先用JsonCssExtractionStrategy.generate_schema()让 LLM 根据样本 HTML 生成一次之后批量跑就不依赖模型了。如果列表藏在站点深处再挂一个BFSDeepCrawlStrategy(max_depth2, max_pages50, include_externalFalse)控制范围和数量v0.8.0 起还支持prefetchTrue只做 URL 发现官方标注比完整处理快 5–10 倍和resume_state断点续爬。值不值得用方案适合短板requests 解析库纯静态页面开销最低不执行 JS动态页面拿到空骨架手写 Selenium/Playwright交互流程高度定制的场景等待、定位、HTML 清洗全部手写付费抓取 API不想维护任何基础设施订阅费用数据经第三方Crawl4AI动态页面 LLM 友好输出浏览器启动有开销静态页批量抓取时偏重比较适合搭建 RAG 知识库、监控结构经常变动的页面、从半结构化网页提取字段。不太适合目标只有几个纯静态页面且追求极致吞吐启动浏览器不划算以及目标站点有严格反爬的情况——它提供proxy_config、stealth 模式和反爬检测加代理轮换v0.8.5但代理池需要你自己准备不是开箱即用的服务。资料与入口快速上手教程docs/md_v2/core/quickstart.md深度爬取BFS/DFS/BestFirstdocs/md_v2/core/deep-crawling.md非 LLM 提取策略docs/md_v2/extraction/no-llm-strategies.md官方示例目录docs/examples/含 hello_world.py、extraction_strategies_examples.py 等命令行用法docs/md_v2/core/cli.md需要源码时git clone https://gitcode.com/GitHub_Trending/craw/crawl4aiCrawl4AI 的价值在于把抓到页面到数据可用之间的距离压缩到一次配置。下一步建议先在终端用crwl抓一个你常用的动态页面检查输出的 Markdown 质量再决定要不要把它接进自己的数据管道。【免费下载链接】crawl4ai Crawl4AI: Open-source LLM Friendly Web Crawler Scraper. Dont be shy, join here: https://discord.gg/jP8KfhDhyN项目地址: https://gitcode.com/GitHub_Trending/craw/crawl4ai创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考