ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Crawl4AI:为 LLM 输出干净 Markdown 的开源网页爬虫

Crawl4AI:为 LLM 输出干净 Markdown 的开源网页爬虫 Crawl4AI为 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给 RAG 系统喂网页数据前你得先把 HTML 变成 AI 能读的 Markdown。Crawl4AI 就是一个干这件事的开源网页爬虫无头浏览器渲染完页面你拿到的直接是干净的 Markdown。Crawl4AI 是什么传统爬虫把 HTML 交给你自己清洗而 Crawl4AI 的定位是 AI 应用的最后一公里取数工具底层用 Playwright 驱动真实浏览器完成 JS 渲染输出格式直接面向大模型。你不用写正则、不用为每个站点维护选择器声明好需求框架负责剩下的事。它目前在 GitHub 上有 50k 星标当前版本 v0.9.0pip 包和 Docker 镜像都在持续更新。 快速上手装完浏览器就能跑第一个爬虫先在终端装包并初始化浏览器环境crawl4ai-doctor会告诉你环境是否可用pip install -U crawl4ai crawl4ai-setup crawl4ai-doctor三条命令分别安装库、下载 Chromium、做体检。然后写一个最短的抓取脚本import asyncio from crawl4ai import AsyncWebCrawler async def main(): async with AsyncWebCrawler() as crawler: result await crawler.arun(https://www.nbcnews.com/business) print(result.markdown[:500]) asyncio.run(main())运行后无头浏览器打开页面、等待动态内容加载完成result.markdown就是整页的 Markdown标题层级、表格、链接都已整理好。 亮点拆解从干净文本到结构化数据LLM 友好的 Markdown 与自动去噪输出不是 HTML 直译而是带引用列表的结构化 Markdown。传CrawlerRunConfig(markdown_generatorDefaultMarkdownGenerator(content_filterPruningContentFilter()))就能剪掉导航、页脚等噪音也可以用BM25ContentFilter(user_query...)按你的问题挑选相关段落。过滤后的版本在result.markdown.fit_markdown里。不用 LLM 的结构化提取页面结构稳定时用JsonCssExtractionStrategy按 CSS 选择器直接抓 JSON比调模型又快又省。选择器 schema 可以让 LLM 一次性生成JsonCssExtractionStrategy.generate_schema(html, llm_config...)之后每次提取都走 CSS不再依赖模型。LLM 提取给一个问题拿回结构化字段结构未知、字段模糊的页面交给LLMExtractionStrategy传入llm_config、一个 pydantic 模型的schema和一句instruction爬完后result.extracted_content直接返回 JSON。官方示例从 OpenAI 定价页提取了每个模型的输入/输出单价几十行代码就搞定。深度爬取BFS、DFS、Best-First把策略对象挂到配置的deep_crawl_strategy参数上爬虫就从入口页出发自动跟进站內链接按max_depth、max_pages控制规模。v0.8.0 起还支持resume_state崩溃恢复跑了几百页的任务断了可以从断点续爬。️ 深度用法策略怎么选服务怎么部署三种深度爬取策略的取舍策略行为适用场景关键参数BFS逐层向外扩展摸清站点全貌、建页面索引max_depth、max_pagesDFS沿一条路径深挖垂直站点的分类页递归max_depth、filter_chainBest-First按评分挑下一个 URL目标导向、内容打分后择优爬取url_scorer、score_threshold一个 BFS 深度爬取的最小脚本长这样from crawl4ai import AsyncWebCrawler, CrawlerRunConfig from crawl4ai.deep_crawling import BFSDeepCrawlStrategy config CrawlerRunConfig( deep_crawl_strategyBFSDeepCrawlStrategy(max_depth2, max_pages20) ) async with AsyncWebCrawler() as crawler: results await crawler.arun(https://docs.crawl4ai.com, configconfig) print(len(results), pages crawled)运行后它会以文档首页为起点按层展开爬满 20 页为止每个结果都是独立的CrawlResult。如果多个服务要共用爬虫不必各自嵌 Python 库跑官方镜像docker run -d -p 11235:11235 --shm-size1g unclecode/crawl4ai:latest启动后localhost:11235提供/crawl等 REST 接口/dashboard面板能实时看浏览器池和内存占用。注意 v0.9.0 之后自托管服务默认开启认证并只绑定 loopback升级前先看 deploy/docker/MIGRATION.md。 落地建议目标站有反爬时在BrowserConfig里同时上proxy_configProxyConfig(server...)和use_undetected_browserTrue遇到验证码就换代理节点重试而不是硬刷。长任务跑在共享机器上时压低AsyncWebCrawler(max_concurrent...)并发关掉不用的截图和媒体提取深度爬取记得持久化resume_state避免中途崩溃从头再来。 资源导航docs/md_v2/core/quickstart.md—— 从首次抓取到动态页面的完整起步文档docs/examples/llm_extraction_openai_pricing.py—— LLM 提取的可运行示例docs/examples/docker_example.py—— Docker API 调用示例deploy/docker/README.md—— 镜像部署、监控面板与生产配置如果手头正好有一批等着喂给模型的网页先把上面 11 行脚本里的 URL 换成你的目标页跑通之后再考虑加策略。【免费下载链接】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),仅供参考
返回列表