一、项目简介:什么是 MediaCrawler?
MediaCrawler 是由 NanmiCoder 开发维护的一款多平台自媒体数据采集工具,支持小红书、抖音、快手、B站、微博、百度贴吧、知乎七大主流平台的公开信息抓取。截至2026年8月,该项目在 GitHub 上已获得超过 58,000 Stars 和 11,500+ Forks,是中文社交媒体爬虫领域最具影响力的开源项目之一。
该项目最核心的设计理念是:用真实浏览器代替复杂的 JS 逆向。MediaCrawler 基于 Playwright 浏览器自动化框架,通过复用真实浏览器的登录态和 Cookie,以 CDP(Chrome DevTools Protocol)模式连接用户已有的 Chrome 浏览器,大幅降低了爬虫开发的技术门槛。正如其 README 所言——“无需逆向复杂的加密算法,大幅降低技术门槛”。
官方资源:
⚠️ 重要声明:本项目仅供学习和研究使用,禁止用于商业用途或侵犯他人合法权益。使用前请仔细阅读项目免责声明。
二、功能特性一览
2.1 多平台全覆盖
MediaCrawler 对七个主流平台的支持涵盖了以下核心功能:
| 功能 | 小红书 | 抖音 | 快手 | B站 | 微博 | 贴吧 | 知乎 |
|---|---|---|---|---|---|---|---|
| 关键词搜索 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 指定帖子ID爬取 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 二级评论 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 指定创作者主页 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 登录态缓存 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| IP代理池 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 生成评论词云图 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
2.2 核心技术架构
MediaCrawler 采用模块化架构设计,主要包含五大功能模块:
- 平台适配器(
media_platform/):各社交平台专用爬虫实现 - 代理管理系统(
proxy/):IP池构建与动态调度 - 数据存储引擎(
store/):多类型数据库适配 - 工具函数库(
tools/):验证码处理、时间工具等辅助功能 - 配置中心(
config/):环境变量与参数管理
2.3 MediaCrawler Pro
项目还推出了MediaCrawler Pro付费版本,相较于开源版本的核心优势包括:
- 自媒体内容拆解 Agent
- 断点续爬功能
- 多账号 + IP代理池支持
- 去除 Playwright 依赖,使用更简单
- 完整 Linux 环境支持
- AI Agent Skill 支持(OpenClaw / Claude Code / Cursor 一键安装)
三、使用教程:从零开始搭建
3.1 前置依赖
在开始之前,请确保您的系统满足以下要求:
| 组件 | 版本要求 |
|---|---|
| Python | >= 3.11 |
| Node.js | >= 16.0.0 |
| Chrome | >= 144(推荐) |
| uv | 最新版(推荐) |
3.2 安装步骤
第一步:克隆项目
git clone https://github.com/NanmiCoder/MediaCrawler.git cd MediaCrawler
第二步:安装 uv 包管理器(推荐)
uv 是 MediaCrawler 推荐的依赖管理工具,安装地址:https://docs.astral.sh/uv/getting-started/installation
# 验证 uv 是否安装成功 uv --version
第三步:安装项目依赖
uv sync
如果使用传统的 pip 方式:
pip3 install -r requirements.txt
第四步:安装 Playwright 浏览器驱动
playwright install # 或仅安装 Chromium playwright install chromium
第五步:配置 Chrome CDP 模式(关键步骤)
MediaCrawler 默认使用 CDP 模式连接用户已有的 Chrome 浏览器。需要先启动 Chrome 并开启远程调试:
# macOS /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222 # Windows "C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222 # Linux google-chrome --remote-debugging-port=9222
3.3 首次运行
验证安装是否成功:
# 查看帮助信息 python3 main.py --help # 示例:小红书关键词搜索(二维码登录) python3 main.py --platform xhs --lt qrcode --type search --keyword "数据分析" --page 1
命令行参数说明:
--platform:平台代码(xhs/douyin/kuaishou/bilibili/weibo/tieba/zhihu)--lt:登录方式(qrcode/cookie/phone)--type:采集类型(search/creator/detail)--keyword:搜索关键词--page:爬取页数
3.4 配置详解
数据存储配置:
MediaCrawler 默认数据保存格式为 JSONL。如需导出为 Excel,可在 config/base_config.py 中修改:
SAVE_DATA_OPTION = "excel"
或启动时添加参数:
python3 main.py --platform xhs --lt qrcode --type search --save_data_option excel
数据库配置:
项目支持 MySQL、PostgreSQL、MongoDB、Redis 等多种数据库,配置文件位于 config/db_config.py。
代理池配置:
代理系统采用三层架构,通过 Redis 维护 IP 生命周期。需在 proxy/proxy_ip_provider.py 中配置 API 密钥。
3.5 新手推荐流程
建议按照以下顺序逐步验证:
- 先选一个平台(小红书、B站、微博、贴吧或知乎),不要同时开启多个平台
- 选一个低风险关键词或公开内容 ID,限制采集量
- 只开启必要功能,先验证能否拿到主内容
- 确认主内容稳定后,再开启评论采集
- 确认一级评论稳定后,再开启二级评论
- 确认本机网络可跑通后,再评估是否需要代理
- 确认输出字段满足分析需求后,再接数据库
四、实用建议与避坑指南
4.1 常见问题及解决方案
问题1:Playwright browser not found
# 解决方案:重新安装 Playwright 浏览器驱动 playwright install
问题2:小红书扫码后提示“无登陆信息”
这通常是由滑块验证码触发的风控导致。解决方案:
- 关闭无头模式:
CDP_HEADLESS = False - 降低爬取速度
- 在非 headless 模式下完成滑块验证
问题3:数据保存为 JSONL 而非 Excel
修改 config/base_config.py 中的 SAVE_DATA_OPTION 为 "excel"。
问题4:采集过程中频繁出现 403 错误
- 检查代理 IP 是否可用
- 降低请求频率
- 检查 Cookie 是否过期
- 尝试切换登录方式
4.2 风控规避建议
- 使用测试账号:CDP 模式会复用 Chrome 的 Cookie 和账号状态,建议使用独立的测试账号和浏览器用户配置
- 控制采集频率:避免短时间内发送大量相同模式的请求
- 关闭无头模式调试:在测试阶段建议关闭 headless 模式,以便观察和完成验证码
- 逐步扩大范围:单任务稳定后再考虑多账号、断点续爬和 IP 代理池
4.3 学习建议
MediaCrawler 的价值不仅在于“能爬数据”,更在于其工程化设计思路。它展示了一种“业务逻辑/平台适配层/数据存储”三层解耦架构,对于想学习爬虫框架设计的开发者来说是极佳的参考源码。
对于初学者,建议:
- 先通读项目的 README 和文档
- 从单个平台、单个关键词的小规模采集开始
- 遇到问题先在 GitHub Issues 中搜索(已有大量踩坑记录)
- 理解 CDP 模式的工作原理,这是项目最核心的设计决策
五、总结
MediaCrawler 是目前中文社交媒体爬虫领域的事实标准(reference implementation)。它用 Playwright + CDP 模式绕开了复杂的 JS 逆向,将七个主流平台的数据采集统一到了一个框架之下。无论你是数据分析师需要获取社媒样本,还是开发者想学习爬虫架构设计,MediaCrawler 都是一个值得投入时间研究的项目。
最后再次提醒:请以学习为目的使用,尊重各平台的使用条款和用户隐私。
数据统计
数据评估
关于MediaCrawler特别声明
本站微企脉提供的MediaCrawler都来源于网络,不保证外部链接的准确性和完整性,同时,对于该外部链接的指向,不由微企脉实际控制,在2026年8月23日 下午11:54收录时,该网页上的内容,都属于合规合法,后期网页的内容如出现违规,可以直接联系网站管理员进行删除,微企脉不承担任何责任。
相关导航
Pixelle-Video是由AIDC-AI(阿里巴巴国际数字商业集团AI团队)开发并一款开源的AI全自动短视频引擎,你只需输入一个主题,它就能自动完成文案撰写、AI配图、语音解说、背景音乐添加和视频合成——零剪辑经验,一键出片。
MultiPost
MultiPost 是一款开源的多平台社交媒体内容发布工具,以浏览器扩展为主要形态,帮助用户将文本、图片、视频等内容一键同步发布到多个平台。无需登录、无需注册、无需申请 API Key。它不经过任何第三方服务器中转你的内容,所有操作都在你的浏览器本地完成。
Lightpanda Browser
Lightpanda Browser 是一款从头开始用 Zig 语言编写的开源无头浏览器,专为 AI 代理、网页自动化和数据采集场景而设计。它不是 Chromium 的分支,也不是 WebKit 的补丁——而是一个完全从零构建的全新浏览器引擎。Lightpanda 将自己定义为“第一台为机器而非人类打造的浏览器”。它没有图形渲染界面,启动即用,专为服务器端、自动化流水线和 AI 工作负载而设计。
Moli Browser
Moli Browser(简称 Moli)是一款专为AI智能体设计的生产级无头浏览器,使用Rust编写,致力于解决传统浏览器在AI自动化场景下的资源消耗过大、启动缓慢等问题。Moli的目标非常清晰:让AI智能体能够高效地抓取网页、搜索网络、自动化执行浏览器任务,同时保持极低的资源占用。
ImageToURL
ImageToURL是一个旨在将本地图片快速转换为网络链接的免费在线托管平台。它的核心服务承诺简单、免费且高效,是各类用户在线分享和嵌入图片的实用选择。
social-auto-upload
social-auto-upload是一个功能强大的多平台社交媒体视频自动化上传工具,由开发者 dreammis 发起并开源。项目旨在帮助内容创作者和运营团队高效地将视频内容一键发布到多个国内外主流社交媒体平台。它用自动化的方式解决了多平台内容分发中最繁琐、最耗时的环节,让你可以把更多精力投入到内容创作本身。
CyberVerse
CyberVerse是一个开源的实时数字人Agent框架,由Lynpoint团队开发并托管在GitHub上。它基于WebRTC实现低延迟音视频传输,结合人设记忆(Persona Memory)、工具调用(Tools)、RAG检索增强生成,以及可选的数字人视频能力,帮助开发者构建以语音交互为核心的AI Agent。
Pake
Pake是一款基于Rust和Tauri技术栈的开源桌面应用构建工具,能够一键将任意网页快速打包成原生桌面应用,并同时支持macOS、Windows、Linux三大操作系统。与传统的Electron方案不同,Pake并不捆绑完整的Chromium浏览器内核,而是利用系统原生WebView进行渲染。在macOS上使用WKWebView,在Windows上使用WebView2,在Linux上使用WebKitGTK。
360趋势
360趋势是一个大数据分析平台,致力于实时追踪和展示互联网上的热门话题与搜索趋势。
wigolo
wigolo(读音类似“威狗罗”)是一个开源的本地优先Web情报工具,专为AI Agent设计。它把搜索、网页抓取、爬虫、信息提取、缓存、深度研究等功能全部封装进一个本地MCP Server中,通过MCP(Model Context Protocol)协议与AI编程助手通信。核心定位:让AI Agent拥有“本地联网大脑”——不需要API Key、不按次数付费、所有数据留在本地机器上。
头条站长
头条站长平台是字节跳动公司旗下,专为网站管理者、内容创作者及开发者提供的官方工具平台。它主要服务于头条搜索,帮助网站内容在今日头条、抖音等庞大的字节系生态内获得更好的收录、排名和信息流推荐。
Microsoft Clarity
Microsoft Clarity 是由微软推出的一款完全免费的用户行为分析工具。不同于 Google Analytics 等工具侧重于提供宏观数据(如访问量、跳出率),Clarity 专注于通过可视化技术,帮助网站所有者理解用户“为什么”会那样做。
暂无评论...






