📌 项目地址NanmiCoder/MediaCrawler | ⭐ 52,704 颗星 | 🔧 Python | 📜 未标注

为什么你需要这个爬虫

自媒体平台的数据采集一直是个难题——网页加密参数、反爬机制、登录态维护,每一样都足够劝退新手。而 MediaCrawler 的解法很巧妙:它利用 Playwright 浏览器自动化框架完成登录并保存登录态,然后通过执行 JS 表达式直接获取签名参数,不需要逆向任何加密算法

说得直白点:你不需要去分析微博的 wbcode、抖音的 _signature 是怎么生成的,项目帮你把这些脏活都干了。目前它支持小红书、抖音、快手、B 站、微博、百度贴吧、知乎七个平台,覆盖笔记/视频/帖子/评论/回复等常见数据类型。

它能爬什么

所有功能都在下面这张表里了:

平台 关键词搜索 指定帖子ID爬取 二级评论 指定创作者主页 登录态缓存 IP代理池 生成评论词云图
小红书
抖音
快手
B 站
微博
贴吧
知乎

注意关键词:评论词云图——爬完评论后还能自动生成可视化结果,省去二次处理。

快速上手(基于 README 原文)

项目依赖 Python 和 Node.js(>=16.0.0),Python 包管理推荐使用 uv——原因无他,速度快、依赖解析稳。

# 1. 安装 uv(如果还没装)
# 参考官方指南:https://docs.astral.sh/uv/getting-started/installation
# 验证安装
uv --version

# 2. 进入项目目录
cd MediaCrawler

# 3. 使用 uv 安装依赖(具体命令 README 仅给出了 "cd MediaCrawler" 和 "使用uv" 的提示,
#    官方推荐执行『uv sync』或『uv pip install -r requirements.txt』,请以项目最新文档为准)

如果你更习惯传统方式,也可以用 pip,但 uv 是作者的强推项。至于 Node.js,直接去官网下载并确保 node -v 输出 ≥16 即可。

和同类工具的区别

常见的爬虫方案有两种:

  1. 纯 requests + 逆向:需要分析每个平台的加密参数,一旦加密算法更新就失效。MediaCrawler 的方式是“用浏览器代替逆向”,只要你能在浏览器里正常打开页面,它就能通过 Playwright 获取数据。
  2. 基于 Scrapy / 通用爬虫框架:通常不针对自媒体平台做优化,需要自己处理登录、Cookie、反爬。而 MediaCrawler 内置了登录态缓存(可以复用已登录的浏览器上下文)和 IP 代理池,开箱即用。

此外,这个项目开放了一个 Pro 版本,重点优化了断点续爬、多账号 + IP 代理池、去除 Playwright 依赖(更适合服务器环境)、代码架构重构。如果你只是想单个平台偶尔爬一下,开源版足够;如果要做持续采集,Pro 版能省很多维护时间。

需要注意的事情

免责声明必须先看清楚。 项目 README 开头就写明了:

所有内容仅供学习和参考之用,禁止用于商业用途。任何人或组织不得将本仓库的内容用于非法用途或侵犯他人合法权益。

国内对爬虫的监管越来越严,曾经出现过不少因爬虫获刑的案例(项目链接里附了一份爬虫违法违规案件清单)。如果你计划用这个项目采集数据,务必确认目标平台的 robots.txt 和服务条款,并控制采集频率。

另外,由于依赖 Playwright,首次运行需要下载浏览器内核(大约 100-200MB),并且需要在有桌面环境的系统上才能完成登录(云端无头模式需要额外配置)。Pro 版本声称已去除该依赖,但开源版依然需要。

写在最后

MediaCrawler 是那种“一次配置,多平台复用”的工具。如果你经常需要从自媒体平台收集数据做分析,或者只是好奇某个关键词下的评论趋势,它都能大幅降低技术门槛。5.2 万 Star 不是白来的,项目活性和社区支持都很不错。

唯一要提醒的是:爬虫的边界永远在法律和平台规则之内。 用它来做一点个人研究和学习,那是利器;如果踩线,那再强的工具也救不了你。

这篇文章对你有帮助吗?

发表回复