
Crawl4AI4 行代码把动态网页变成 LLM 就绪的 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周一上午你打开一个竞品产品页准备采集DevTools 里main标签是空的——整页内容全是 JS 渲染requests 只能拿到骨架。Crawl4AI 是一个面向 LLM 场景的开源网页采集与数据提取工具给定 URL直接吐出渲染完成、清洗过、转成 Markdown 或结构化 JSON 的内容。它能干什么从 URL 到 LLM 就绪数据Crawl4AI 的定位是把渲染 → 净化 → 结构化三步合成一条流水线同时用深度爬取策略和代理轮换解决规模与反爬问题。挑三个最常用的能力说输出即 LLM 就绪result.markdown默认就是干净的 Markdown可直接进 RAG 或微调语料配一个schema参数同一份内容再吐结构化 JSON。省掉HTML → 清洗脚本 → 再转换的中间环节。CSS 选择器 JS hookscss_selector限定提取区域hooks 里塞一段 JS 就能模拟点击Load More、等待懒加载完成。省掉手写等待条件和元素定位的调试时间。无规则的结构化提取LLMExtractionStrategy按你给的 JSON schema 抽取字段CosineStrategy甚至不需要 LLM用向量相似度匹配目标文本。省掉为每个页面单独写解析规则。和传统做法的差别一目了然环节传统组合requests / Selenium 自己写清洗Crawl4AIJS 渲染手动维护等待条件和元素定位浏览器内置默认wait_untilnetworkidle内容净化逐个删除导航、广告、推荐位PruningContentFilter剪枝 BM25ContentFilter过滤结构化输出每页一套 CSS/XPath 规则schema 驱动的 LLM / 向量提取策略深度爬取自己写队列、去重、深度计数BFSDeepCrawlStrategy(max_depth, max_pages)反爬应对手动轮换代理和 UA指纹伪装、代理轮换策略、行为模拟3 分钟跑通第一个例子安装只有两步pip install crawl4ai crawl4ai-setup然后是最小可用的采集脚本核心逻辑 4 行import asyncio from crawl4ai import AsyncWebCrawler async def main(): async with AsyncWebCrawler() as crawler: result await crawler.arun(https://www.nbcnews.com/business, css_selectorarticle) print(result.markdown[:500]) asyncio.run(main())这四行帮你做了三件事起浏览器把 JS 渲染完、按css_selectorarticle只保留正文区、把结果转成干净的 Markdown。不传任何参数时走默认配置result里还有links、media、html等字段可以直接取用。从原始 HTML 到可用数据四层流水线可以把一次arun想成一条四道工序的加工线原料是 URL渲染内置浏览器Playwright加载页面执行你注入的 JS hooks等网络空闲后冻结 DOM。净化先按css_selector/ 语义树剪枝砍掉导航和广告再经过内容过滤器降噪。转换默认 Markdown 生成器把 DOM 转成保留标题、表格、代码块语义的 Markdown而不是粗暴去标签。提取如果你给了extraction_strategy就按 schema 调用 LLM 或向量模型产出结构化 JSON。批量跑的时候CrawlerMonitor面板能实时看到每个任务的内存占用MB、耗时和状态方便定位是哪个 URL 把资源吃掉的。我用它的 3 个真实场景我一个做 RAG 应用的工程师用它建网站知识库arun_many一次丢进去整个文档站的入口 URL配BFSDeepCrawlStrategy加max_pages和 URL 过滤链限定范围产出的 Markdown 直接切块入库。以前这套队列 去重 深度控制得自己维护现在一个策略对象搞定。我一个数据分析师用它抓需要登录和无限滚动的电商后台hooks 里先跑登录后的会话再用VirtualScrollConfig控制滚动加载列表数据稳定落进result.markdown。相比手写 Selenium 的time.sleep和坐标点击脚本终于不用每天醒来改一遍。我一个运维用它管理部署装环境跑crawl4ai-setup一条命令装齐 Playwright 浏览器和系统依赖要隔离环境时仓库自带 Dockerfile 和deploy/docker/里的服务化方案Python SDK 和 REST API 两种接入方式都有现成 demo。踩过这几个坑帮你标出来⚠️第一次装完必须跑crawl4ai-setup。它负责下载 Playwright 的浏览器二进制跳过它启动爬虫会直接报找不到浏览器装完还不行就按提示补系统依赖包再跑一次。⚠️强反爬网站默认配置会被拦。Cloudflare 一类的防护下默认 headless 参数基本必死需要开BrowserConfig(undetectedTrue)或挂代理轮换。注意换 IP 解决不了指纹识别问题两者要配合用。别用废弃参数名proxy已废弃统一用proxy_config传对象旧的disable_cache、bypass_cache也会收到警告并提示改用cache_mode。另外page_timeout的单位是毫秒不是秒按秒填等于无限等待。下一步文档、示例与贡献快速上手docs/md_v2/core/quickstart.md代码示例集docs/examples/LLM 提取、代理、hooks、深度爬取都有可运行 demo深度爬取专项文档docs/md_v2/core/deep-crawling.md参与贡献流程写在 CONTRIBUTING.md门槛不高——挑个 issue、本地跑通、按流程提 PR 即可。本地开发装依赖用pip install -e .[dev]。回到周一那个 JS 渲染出来的空壳页面装好 Crawl4AI拿你手头最头疼的那个 URL 跑一遍arun4 行代码就能把干净 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),仅供参考