做自媒体数据分析,不管你是内容研究还是竞品调研,爬小红书、抖音、B站这些平台的帖子和评论一直是个头疼活。签名算法老变,IP 说封就封,换个环境直接歇菜。
GitHub 上有个 53.9K Star 的项目 MediaCrawler,把这件事变得挺简单。不需要 JS 逆向,不需要硬抠加密逻辑,一台电脑装好就能跑。
是什么
MediaCrawler 是一个多平台自媒体数据采集工具,小红书、抖音、快手、B站、微博、贴吧、知乎,7 个平台全支持。爬帖子、爬评论、爬用户主页,基本上你能想到的数据它都能抓。
底层走的是 Playwright 浏览器自动化,保留登录态的浏览器上下文里直接拿签名参数,绕过了传统 JS 逆向那套。作者还出了 MediaCrawlerPro 收费版,加了断点续爬、多账号代理池、AI Agent 内容拆解,生产场景更合适。
核心优势
1. 不用搞 JS 逆向
这是它最大的卖点。主流平台的签名算法三天两头变,专门逆向一套算法要好几天,平台一改全白干。MediaCrawler 直接在有登录态的浏览器里跑,JS 参数自动获取,不需要你懂加密。
2. CDP 模式,复用你已有的浏览器
Chrome 开调试端口连上去,程序能用你已有的登录态和 Cookie。不用每次扫码登录,被平台风控的概率也低不少。我实际跑下来,CDP 模式比自己写请求头要稳很多。
3. 7 大平台全覆盖
关键词搜索、指定帖子 ID、评论(含二级评论)、指定用户主页,能抓的东西基本全了。你要是做跨平台的内容分析,一个工具搞定比东拼西凑方便太多。
4. 数据格式随便选
CSV、JSON、JSONL、Excel、SQLite、MySQL,你习惯用哪个就导出哪个,不用自己写转换脚本。
5. 还有 WebUI
不喜欢命令行的话,官方用 FastAPI 写了个 Web 管理界面。配置参数、看日志、导出数据,点点鼠标就搞定。
快速上手
Python 3.11+、Node.js 16+、Chrome ≥ 144,推荐用 uv 管环境。
git clone https://github.com/NanmiCoder/MediaCrawler.git
cd MediaCrawler
uv sync
# Chrome 地址栏输入 chrome://inspect/#remote-debugging
# 勾选 "Allow remote debugging for this browser instance"
# 搜小红书帖子
uv run main.py --platform xhs --lt qrcode --type search
# 扫码登录后程序自动开始
WebUI 启动:
uv run uvicorn api.main:app --port 8080 --reload
# 打开 http://localhost:8080
说几个真实的坑
登录态会过期。Cookie 有效期有限,跑长期任务得定期更新,或者多账号轮换。
大规模采集还是得上代理池。CDP 能降低封号概率,但量大了照样封。开源版没内置代理功能,Pro 版才有。
依赖 Playwright + Node.js,环境装起来不轻。对只想发个简单 HTTP 请求的人来说,这套框架确实有点重。
免责声明写了整整一屏。官方态度很明确:只供学习研究,大规模爬和商用自己承担风险。如果你要做数据产品,合规性得自己评估。
跟同类怎么选
只需要某个单一平台数据的话,专用工具更轻——爬小红书有专门的小红书爬虫,爬 B 站有 bilibili API。轻是轻,但没有统一接口,每个平台学一套。
MediaCrawler 的好处是统一入口。一次配置 7 个平台都能爬,数据格式也统一。做多平台内容分析、竞品监控这类需要横向对比的场景,它的优势就出来了。
企业级长期采集建议上 MediaCrawlerPro,断点续爬和多账号代理池更靠谱。开源版学习用和小规模跑够了。
GitHub:NanmiCoder/MediaCrawler
文档:nanmicoder.github.io/MediaCrawler
标签:#MediaCrawler #自媒体爬虫 #小红书爬虫 #抖音数据采集 #Playwright #Python工具 #B站数据 #竞品分析
关注我,每期分享一个帮你省事的强大工具 🛠️