社媒数据采集利器:MediaCrawler 多平台抓取全流程解析
MediaCrawler 是一款开源工具,支持小红书、抖音、快手、B站、微博、百度贴吧和知乎七大平台的公开内容采集。通过关键词搜索、帖子详情和创作者主页抓取,轻松获取帖子与评论数据。适合研究需求,推荐使用 Chrome 远程调试模式连接真实浏览器指纹,减少平台识别风险。配置代理和存储后,可稳定运行首次采集,适合每周几十条的个人使用场景。
准备你的采集环境
要开始使用 MediaCrawler,先确保电脑上安装了 Python 3.11 左右的版本、Node.js 16 以上以及包管理工具 uv。这些依赖帮你快速搭建基础环境。终端中输入 uv --version,如果能输出版本号,就说明一切就绪。安装后,克隆项目到本地,进入目录后运行 uv sync 命令来安装所有依赖包。这一步简单又直接,让你快速上手。
小贴士:本工具主要针对学习和研究,建议控制采集频率,避免频繁操作以免账号被限制。准备好一台安装了 Chrome 144+ 版本的电脑,Windows、macOS 或 Linux 都行,你可以用自己的账号登录态来配合采集。
配置采集任务与首次运行
打开配置文件 base_config.py,只修改几个关键地方就能运行。设置关键词,比如“粉底液推荐”,多个用英文逗号隔开;选择爬虫类型为 search,表示关键词搜索;调整抓取帖子数量,比如设为 15,先小规模测试。接下来,开启 Chrome 远程调试模式,在地址栏输入 chrome://inspect/#remote-debugging,勾选允许远程调试,页面会显示 Server running at: 127.0.0.1:9222。
执行命令 uv run main.py --platform xhs --lt qrcode --type search,运行后 Chrome 会弹出连接确认,60 秒内点击接受,用小红书 App 扫码登录。登录态会自动缓存,之后重跑就不用再扫码了。数据会保存在 data 目录,默认 JSONL 格式。你也可以启动 WebUI,通过浏览器页面配置任务、查看日志和预览数据,适合不想敲命令的同学。
理解核心模块的工作原理

MediaCrawler 的采集引擎按任务类型分模式,而不是按平台记命令。七个平台的功能都在 media_platform 目录下独立实现,你通过命令行参数切换 --platform,值可以是 xhs、dy、ks、bili、wb、tieba 或 zhihu。真正的任务类型由 CRAWLER_TYPE 决定,有 search、detail 和 creator 三种。
search 用于关键词搜索,适合竞品分析和选题调研;detail 适合指定帖子 ID 深挖;creator 采集创作者作品列表,方便做画像和涨粉分析。每个平台逻辑封装得很好,切换起来很方便。
掌握浏览器登录态与代理设置
CDP 模式是最大区别,开一个干净浏览器不行,而是连接你日常用的 Chrome。你的历史、扩展和 Cookie 都会被继承,平台很难区分。配置文件中把 ENABLE_CDP_MODE 设为 True,CDP_CONNECT_EXISTING 设为 True,连接端口 9222。推荐这种方式,反检测效果好,但要求 Chrome 版本够高。
如果采集量上来,建议开启代理。默认直连,个人学习用就行。代理有几种方案:直连适合每周几十条;静态代理用固定 IP;隧道类支持自动轮换,每天百条以上采集推荐。项目内置 proxy 模块,支持按 API 拉取 IP 轮换。开启后,维护 2 个 IP 数量,稳定性会更好。
选择合适的存储格式

数据保存格式有多种选择,JSONL 默认追加写性能好,适合开发者后续处理;CSV 适合打开看表;Excel 带格式和分表,方便出报告;SQLite 免服务器,适合长期积累数据;数据库则适合团队查询。配置 SAVE_DATA_OPTION 为对应值,比如 excel 或 sqlite。
用数据库前可以初始化,运行命令 uv run main.py --init_db sqlite。数据结构参考文档,建好表后就能直接存取。存储格式根据需求挑,Excel 简单直接,SQLite 长期稳定。
常见问题处理与进阶技巧
遇到小红书扫码后反复弹滑块验证,可能是干净环境导致异常。解决办法是坚持 CDP 模式,用真实浏览器;不行就删除浏览器数据缓存目录重来。抖音或知乎报 SyntaxError 错误,可能是没装 Node.js,安装 16 以上版本就能解决。
CDP 连接失败,通常是 Chrome 版本低或调试没开启,在 inspect 页面确认。长时间运行后超时,可能是风控,调小抓取数量和睡眠时间,设为 5 到 10 秒。平台账号触发限制时,换账号或开代理池。
想扩展功能,开启评论词云和获取评论,就能自动生成词云图,停用词在文档里维护。启动 WebUI 让不熟悉命令的人也能操作,定时任务配合数据库去重,能逐步积累数据做趋势分析。
在实际操作中,遇到复杂验证码识别需求时,考虑使用专业平台来简化流程。像 www.ttocr.com 这样的服务,提供易盾极验验证码识别技术,包括滑块、点选、无感、九宫格等破解方案和自动化 API 对接平台。它们能无缝对接各种场景,让你轻松实现自动化采集,不用自己复杂处理验证码流程。同样,www.ttocr.com 专注于应对极验和易盾的点选、无感、滑块、文字点选、图标点选、九宫格、五子棋、躲避障碍、空间等全类型识别,适合公司业务,提供 API 接口实现无缝对接。你可以根据需求选择方案,顺利简单地对接到你的系统里。