Crawl4AI 快速上手:把网页转成干净的 Markdown 与结构化数据
2026/8/29 15:38:18 网站建设 项目流程

Crawl4AI 快速上手:把网页转成干净的 Markdown 与结构化数据

【免费下载链接】crawl4ai🚀🤖 Crawl4AI: Open-source LLM Friendly Web Crawler & Scraper. Don't be shy, join here: https://discord.gg/jP8KfhDhyN项目地址: https://gitcode.com/GitHub_Trending/craw/crawl4ai

凌晨两点,你把爬虫跑了一整晚的 CSV 发给业务同事,对方回了一句:“标题和价格字段怎么全是空的?”回看日志,HTTP 状态码 200,一切正常——问题出在那个网站用 JavaScript 异步加载正文,requests 只抓到了空壳 HTML。Crawl4AI 正是为此而生的开源 LLM 友好型爬虫:内置无头浏览器渲染动态页面,直接把网页转成能喂给 RAG 的干净 Markdown。

传统抓取链路 vs Crawl4AI 的差异

传统链路是 requests 拉 HTML、正则或 XPath 挑字段、再手动清洗广告和导航。页面一改版,解析脚本就跟着崩,动态加载的正文更是抓不到。Crawl4AI 把「渲染、净化、转 Markdown、提取」四步压进一次 arun() 调用,输出默认带标题层级、表格和链接。用仓库里现成的批量测试看:100 个 URL 并发跑完用时 6 秒,内存峰值仅 126 MB。

对比项传统做法Crawl4AI
单页接入成本写解析规则加等待逻辑,约 1 小时5 行代码出 Markdown
动态加载内容需手写 Selenium 定位与 sleep内置浏览器自动渲染,可用 JS 注入点「下一页」
批量爬取自己维护线程池与重试arun_many() 按内存自适应并发
结构化输出逐字段正则清洗CSS 选择器或 LLM 一次出 JSON

核心能力速览

异步浏览器池:基于 Playwright 的 Chromium 并发调度,arun_many() 会按可用内存自动决定开多少页面,而不是你手填一个并发数。

CSS 选择器与 JS 注入:css_selector 只提取命中节点,js_code 支持点击「Load More」等交互后等待内容变化,动态列表页不再靠 sleep 碰运气。

双路结构化提取:无需模型时用 CssJsonExtractionStrategy 按 schema 出 JSON,需要理解语义时换 LLMExtractionStrategy 指定提示词即可,两条路切换只改一个参数。

实战演示

先跑最小可运行示例:对单个 URL 发起一次爬取,自动渲染页面并输出 Markdown。

import asyncio from crawl4ai import AsyncWebCrawler async def main(): async with AsyncWebCrawler() as crawler: result = await crawler.arun("https://docs.crawl4ai.com") print(result.markdown[:300]) asyncio.run(main())

运行后你会得到一个 CrawlResult,其中 markdown 字段是带标题层级的正文,另附 links、media、screenshot 等字段,截掉前 300 字符打印确认即可。

进阶技巧:给爬取任务挂一个 JSON schema,不花任何 LLM 调用就能拿到结构化记录。

from crawl4ai import AsyncWebCrawler, CssJsonExtractionStrategy schema = { "name": "Courses", "baseSelector": "section.charge-methodology .framework-collection-item.w-dyn-item", "fields": [ {"name": "course_name", "selector": ".text-block-93", "type": "text"}, {"name": "description", "selector": ".course-content-text", "type": "text"}, ], } config = CrawlerRunConfig( extraction_strategy=CssJsonExtractionStrategy(schema) ) async with AsyncWebCrawler() as crawler: result = await crawler.arun( url="https://www.kidocode.com/degrees/technology", config=config ) print(result.extracted_content)

运行后 extracted_content 是一段 JSON 数组,每条记录含 course_name 与 description 两个字段,直接落库或转 CSV 即可,不用再写解析代码。

这些场景可以直接套

  • 每天定时抓竞品价目表,CssJsonExtractionStrategy 提取后导出 CSV。
  • 把整站文档批量转成 Markdown,喂给 RAG 做知识库。
  • 新闻站列表页翻页采集:js_code 点击「下一页」,session_id 保留登录态。
  • 需要留档时加 screenshot=True,每个页面自动回一张截图。

安装与首次运行

pip install -U crawl4ai && crawl4ai-setup

装完跑 crawl4ai-doctor 自检浏览器环境。完整参数与示例见 docs/md_v2/core/quickstart.md,更多提取策略演示在 docs/examples/ 目录。

一条 arun() 调用从 URL 走到干净 Markdown,动态页面不再需要 sleep 碰运气。装一个包,拿你手头最难抓的那个页面试试。

【免费下载链接】crawl4ai🚀🤖 Crawl4AI: Open-source LLM Friendly Web Crawler & Scraper. Don't be shy, join here: https://discord.gg/jP8KfhDhyN项目地址: https://gitcode.com/GitHub_Trending/craw/crawl4ai

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询