)
MediaCrawler是 GitHub 上最受欢迎的社媒数据采集工具之一——截至 2026 年 9 月22日,65,470 个 Star,12,650 次 Fork,覆盖小红书、抖音、快手、B 站、微博、贴吧、知乎七个平台。它的做法很朴素:打开一个真实浏览器,像普通用户一样访问网页,让网页自己完成该做的事,再把需要的数据拿回来。真实浏览器成了采集流程的一部分。这让它和传统爬虫很不一样。爬虫和平台的"猫鼠游戏",它选择不当猫也不当鼠做一个简单的背景说明,方便没有技术背景的读者理解后面的内容。你在 App 或网页里刷到的每一条内容,背后都是你的浏览器向平台服务器要数据。平台为了防止数据被批量搬走,给每次"要数据"的请求加了一把锁——一串需要复杂计算才能得出的验证码式的参数,俗称"签名"。传统的爬虫做法是:工程师把平台的加密代码读明白,自己在程序里重新实现一遍,等于配一把万能钥匙。问题是平台可以随时换锁,而配钥匙的人要重新工作几天甚至几周。MediaCrawler 的做法是干脆不配钥匙——它用 Playwright(一个可以用代码遥控真实浏览器的工具)打开网页,登录,然后直接在网页内部运行一小段 JavaScript 代码,问页面:"你的签名是多少?" 页面如实回答。因为签名本来就是网页自己要算的东西。两条路线的差别:传统"逆向"路线MediaCrawler 路线核心动作读懂并重新实现平台的加密算法直接使用网页自己算好的签名平台更新加密时算法失效,重新逆向网页能打开,爬虫就能工作需要的技能逆向工程、密码学、抗代码混淆会写简单的 JavaScript 即可被风控识别的风险高(伪装成浏览器,容易露馅)低(用的就是真实浏览器)需要说明:这两样技术本身都不是新发明,这个项目的价值在于把成熟的部件组合成了稳定的整体——并且把"组合"做成了一件任何人都能学会的事。它的第二个聪明之处:蹭你自己的浏览器这个项目默认启用一种叫 CDP(Chrome DevTools Protocol,可理解为浏览器自带的一个"远程遥控器"接口)的模式:不启动一个干净的、一看就是机器人的新浏览器,而是直接连接你电脑上日常在用的 Chrome,复用你真实的登录状态、Cookie 和扩展。打个比方:别的爬虫是造假证混进小区,它是跟着你刷门禁进门。不过这一段必须讲清楚边界,避免你兴冲冲装上却发现跑不起来。CDP 模式有三个现实限制:只适合本机使用:需要你电脑上装有较新的 Chrome(README 要求 144 及以上版本,当然你可以修改为其他浏览器),并手动开启远程调试开关;默认是有界面的:配置里无头模式(即不弹出浏览器窗口的后台运行方式)默认关闭,想静默运行需要自行修改配置;不适合服务器部署:它是"一人一机一浏览器"的设计,想多账号并发、挂机跑在云端,得靠 IP 代理池(即用一批不同的网络出口轮换访问,避免同一个地址请求太频繁被平台盯上)和更重的工程方案——这正是后面会讲到的付费 Pro 版主打的能力。七个平台,一张几乎全绿的能力表支持的平台覆盖了中国互联网内容生态的主要角落:小红书、抖音、快手、B 站、微博、百度贴吧、知乎。以下是项目 README 中声明的能力矩阵:平台关键词搜索指定帖子 ID二级评论创作者主页登录态缓存IP 代理池评论词云小红书✅✅✅✅✅✅✅抖音✅✅✅✅✅✅✅快手✅✅✅✅✅✅✅B 站✅✅✅✅✅✅✅微博✅✅✅✅✅✅✅贴吧✅✅✅✅✅✅✅知乎✅✅✅✅✅✅✅两点提醒:这张表是项目方声明的功能清单,各平台的实际稳定性、字段完整度可能有差异,建议以自己的实测为准;对没有技术背景的读者来说,这张表的使用方式是——先在配置里填关键词,跑一遍小规模的测试抓取,确认拿到的数据够不够用,再放开量。安装和使用(命令行)执行git clone https://github.com/NanmiCoder/MediaCrawler.git(前提先安装git),再执行cd MediaCrawler进入项目,执行uv sync安装python虚拟环境及其依赖项(前提先安装uv)提示:如果没有安装uv,在win电脑的终端可以执行powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex",在mac或Linux电脑的终端可以执行curl -LsSf https://astral.sh/uv/install.sh | sh安装执行.venv\Scripts\activate (win系统)或source .venv/activate (mac/Linux系统)激活虚拟环境执行uv run playwright install安装playwright内置浏览器执行uv run main.py --help可以查看操作不同平台的命令及参数作用