
Crawl4AI 完全指南3 步把任意网页变成 LLM 能用的数据【免费下载链接】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 是一个开源的、对 LLM 友好的网页爬虫与抓取工具Web Crawler Scraper它用真实浏览器打开网页自动转成干净的 Markdown还能用一句话指令提取结构化数据。登录页、动态加载、无限滚动这些老麻烦它基本都能替你先扛下来。它到底是什么Crawl4AI 是一个 Python 库加一套命令行工具定位是给 AI 喂数据的中间层你给它一个网址它还给你可以直接塞进 RAG、Agent 或数据管道的 Markdown外加按你要求格式化的 JSON。它和传统做法的本质差异在于传统爬虫比如 requests 解析库拿到的是死HTML遇到 JS 渲染、登录态、懒加载就得自己一堆补丁Crawl4AI 底层挂的是 Playwright 真实浏览器页面是活的——渲染完、滚动完、登录完再交给它处理。pip install -U crawl4ai crawl4ai-setup # 自动安装并配置浏览器 crawl4ai-doctor # 验证安装是否正常装好后不想写 Python 也能直接用命令行抓一个页面crwl https://www.nbcnews.com/business -o markdown想从源码开始看的话仓库地址是https://gitcode.com/GitHub_Trending/craw/crawl4ai。它替你扛下的 3 件烦心事烦心事一登录墙后面的数据每次都要重新登录痛点目标网站要登录才能看数据。老办法是把 Cookie 存下来复放结果会话一过期全白干遇到验证码、双因素认证更是没法写代码硬绕。解法Crawl4AI 的身份配置文件Profile不是存几个 Cookie而是保存一整个独立浏览器档案——Cookie、LocalStorage、浏览器指纹全在里面存在~/.crawl4ai/profiles/名字目录。相当于你有一台已经登录好的电脑下次爬取直接复用这个身份。你在自己的浏览器里能看见的数据就能用这个身份去自动化抓取。上手crwl profiles # 打开交互式管理界面 # 选 2 创建 → 起个名如 my-bank→ 弹出浏览器 → 手动登录 → 终端按 q 保存 crwl https://bank-portal.com/statements -p my-bank -o json⚠️提醒档案里的登录态会过期它不能让你一次登录、永久有效正确姿势是定期重登刷新档案把重新登录从每次任务变成偶尔维护。烦心事二页面是动态的抓回来的内容总是缺半边痛点产品列表滚动才加载、点加载更多才出下一页、内容用 JavaScript 事后渲染。静态抓包只能拿到初始骨架数据缺一大截。解法因为跑在真实浏览器里Crawl4AI 给了你几种现成的翻页手scan_full_page会在返回前把整页滚一遍把懒加载内容全部触发出来对加载更多按钮这类交互可以直接在任务里注入一段 JS 模拟点击针对 Twitter/Instagram 那种虚拟滚动旧内容会被从 DOM 里删掉、只保留可视区的渲染方式内置了 VirtualScroll 处理滚动时自动把被替换掉的内容累积起来不会只抓到当前屏幕那一条。上手crwl https://shop.example.com/products -c scan_full_pagetrue,delay_before_return_html2想点按钮、等动画就在配置里加一段 JS 执行参考 docs/examples/assets/css_js.png 对应的示例 css_js 用法。⚠️提醒别靠无脑加大delay_before_return_html去赌内容加载完——固定长延迟只是拖慢速度不如配合全页扫描或明确等待条件来得稳。烦心事三抓回来的 HTML 一团糟没法喂给 LLM 或入库痛点就算页面抓全了HTML 里混着导航栏、广告、脚本文本。你要么手写一堆 CSS 选择器逐站维护要么把脏 HTML 直接丢给大模型又贵又不准。解法Crawl4AI 默认就把 HTML 转成结构化 Markdown标题、表格、链接都保留链接还会自动转成编号引用列表。在这个基础上提供双模式提取站点结构稳定就用 CSS/XPath 选择器 自定义 schema按固定格式吐 JSON快且零额外成本站点结构多变或需要语义级理解比如把每篇新闻的标题、日期、核心观点摘出来就挂一个 LLM 提取策略用自然语言指令下需求底层支持各家模型。另外还有个 Cosine 策略按语义相似度筛出和查询最相关的段落适合从长文里定位关键内容。上手结构稳定时用-e 指定YAML规则 -s 指定JSON schema两个参数即可需要语义提取时直接在命令行加一句自然语言指令如-q Extract all product prices或在代码里指定LLMExtractionStrategy。规则文件写法见 提取策略文档。⚠️提醒不是有 LLM 就用 LLM。结构固定的页面用选择器提取速度快好几倍还省钱LLM 模式留给结构多变、需要语义判断的场景两种混着用才是正解。走一遍真实场景给 RAG 知识库批量喂行业资讯假设你要做一个竞品监控每周抓取 3 个电商站的列表页提取价格存库同时把商品详情转成 Markdown 存进向量库。按这个需求拆一下选型列表页要滚动才全→ 开启全页扫描其中 1 个站要登录→ 提前建好 Profile详情页结构各异、经常改版→ 直接出 Markdown不用写选择器价格字段要稳定入库→ 对列表页用 CSS 提取加 schema。落地代码大概就是这样一个异步主循环完整的配置项说明可查 CrawlerResult 文档import asyncio from crawl4ai import AsyncWebCrawler, BrowserConfig, CrawlerRunConfig, CSSExtractionStrategy async def main(): run_conf CrawlerRunConfig( scan_full_pageTrue, extraction_strategyCSSExtractionStrategy(schemaproduct_schema.json), ) async with AsyncWebCrawler(configBrowserConfig(user_data_dir~/.crawl4ai/profiles/shop_b)) as crawler: result await crawler.arun(https://shop-b.com/list, configrun_conf) print(result.extracted_content[:200]) # 价格 JSON print(result.markdown.fit_markdown[:200]) # 干净 Markdown 入向量库 asyncio.run(main())页面多了以后不用自己写并发Dispatcher 会做批量调度并在终端里实时显示每个任务的状态、耗时和内存占用横向对比它和其他方案差在哪维度Crawl4AI传统框架Scrapy 类无代码抓取工具商业 API 服务JS 动态页面内置浏览器滚动/交互/虚拟滚动都有现成配置需自己集成 Selenium/Playwright基础支持复杂交互受限取决于服务商登录与身份Profile 保存完整浏览器档案手动管理 Cookie通常只存 Cookie大多不支持输出格式默认 LLM 友好 Markdown 引用可直接入 RAGHTML 为主需自行清洗视产品而定固定格式结构化提取CSS/LLM/Cosine 多策略可混用XPath/CSS规则全靠手写可视化选元素改版即失效能力封闭成本与可控性免费开源本地/Docker 自托管无配额免费但工程量大多有次数限制按量收费一句话定位Scrapy 是给你管道零件自己装无代码工具是帮你装但装坏了你看不见Crawl4AI 是装好整机、还附了给 AI 用的说明书。学习路径建议按这个顺序读快速入门 quickstart —— 第一次抓取、配置对象、两种提取策略各摸一遍命令行 CLI 文档 —— 熟悉crwl的常用参数适合不想写 Python 的场景虚拟滚动 与 身份化爬取 —— 两个最容易被卡住的点各花十分钟深度爬取 deep-crawling —— 需要整站抓取时再看示例目录 docs/examples/ —— 里面按场景分好了文件遇到什么问题先搜同名示例基本都有。下一步如果你现在手里就有一个想看它抓什么的网址最直接的第一步是装好之后跑一句crwl 那个网址 -o markdown看看它吐出来的 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),仅供参考