当前位置: 首页 > news >正文

GitHub 53K Star 爆款:不用 JS 逆向,7 大平台数据一把抓

摘要:MediaCrawler 是一个支持小红书、抖音、B站等 7 大平台的开源数据采集工具,GitHub 53K Star。核心亮点是无需 JS 逆向——基于 Playwright 浏览器自动化,直接复用登录态获取签名参数,大幅降低技术门槛。本文从原理到实操,帮你 10 分钟跑起来第一个爬虫。


上周一个在品牌部做竞品监测的朋友发来消息,问有没有办法定期抓小红书的评论数据,最好门槛低一点——他会 Python,但没做过爬虫。

我给他发了一个 GitHub 链接:MediaCrawler

他研究了一天,回来说:"这个东西太香了,小红书、抖音、B站,一个工具全搞定,而且根本不用逆向加密算法。"

今天就来聊聊这个项目。


为什么 53K Star 不是虚的

GitHub 上爬虫项目多如牛毛,能做到 53,000+ Star 的寥寥无几。MediaCrawler 凭什么做到了?

覆盖面是真的广。7 个主流平台全支持:

  • 小红书:笔记搜索、评论采集、创作者主页

  • 抖音:视频搜索、评论、创作者主页

  • 快手、B站、微博、百度贴吧、知乎:同样全覆盖

不是"支持"了一半功能就算数的那种。关键词搜索、指定帖子 ID 爬取、二级评论、创作者主页爬取……每个平台的功能矩阵都是满的。

更重要的是:它真正做到了低门槛。

这才是 53K Star 背后的真正原因。


无需 JS 逆向,这到底意味着什么

做过爬虫的人都知道,抖音、小红书这类平台,最难啃的地方不是数据结构,而是请求签名。每次接口请求都带着复杂的加密参数(比如X-SignX-Bogus),这些参数通过 JS 混淆算法生成,破解起来要花大量时间,而且平台一旦更新加密逻辑,之前的工作就废了。

传统路子:花几天逆向分析 JS,写出签名生成函数,再用 Python 模拟请求。

MediaCrawler 完全不走这条路:基于 Playwright 浏览器自动化框架,直接在真实浏览器上下文里执行 JS 表达式,签名参数由浏览器本身生成。

你不需要理解签名算法,因为根本不用破解它。浏览器已经帮你算好了。

这个思路有几个实际好处:

  • 不随平台加密更新而失效

  • 零逆向工作量

  • 后续维护成本极低

一句话:把难搞的部分交给浏览器,你只管拿数据。


快速上手:10 分钟跑起来第一个爬虫

环境准备

需要:Python 3.10+、Node.js 16+、Chrome 浏览器(版本 ≥ 144)。

第一步:克隆项目,安装依赖

推荐用uv(目前最快的 Python 包管理工具):

gitclonehttps://github.com/NanmiCoder/MediaCrawler.gitcdMediaCrawler uv sync

第二步:开启 Chrome 远程调试

在 Chrome 地址栏输入:

chrome://inspect/#remote-debugging

勾选 **"Allow remote debugging for this browser instance"**,看到页面显示Server running at: 127.0.0.1:9222就表示就绪了。

这步是为了让 MediaCrawler 通过 CDP 模式连接你的 Chrome(下文会细说为什么这样做)。

第三步:跑第一个爬虫

# 扫码登录,搜索关键词内容(以小红书为例)uv run main.py --platform xhs --lt qrcode --typesearch

程序会弹出二维码,用手机扫码登录,然后按配置文件里的关键词开始爬取。

其他平台用法:

# 抖音uv run main.py --platform dy --lt qrcode --typesearch# B站(支持 Cookie 登录)uv run main.py --platform bili --lt cookie --typesearch# 查看所有参数说明uv run main.py --help

核心配置项

打开config/base_config.py,几个最常用的配置:

PLATFORM ="xhs"# 平台:xhs / dy / bili / ks / wb / tieba / zhihuCRAWLER_TYPE ="search"# 模式:search搜索 / detail指定ID / creator创作者主页KEYWORDS ="Python爬虫"# 搜索关键词,逗号分隔多个ENABLE_GET_COMMENTS =True# 是否采集评论CRAWLER_MAX_NOTES_COUNT =50# 最多爬取帖子数量

改完配置,重新运行命令即可。第一次跑,建议先改个感兴趣的关键词,看看效果再调整参数。


CDP 模式:这个设计真的聪明

MediaCrawler 默认用 CDP(Chrome DevTools Protocol)模式,连接你本地已有的 Chrome,而不是另起一个无头浏览器。

为什么这样更好?

你在 Chrome 里已经登录了各个平台,MediaCrawler 可以直接复用这些登录状态、Cookie、甚至浏览器扩展。对平台来说,这和你正常用浏览器上网几乎没区别,被风控识别的概率大幅下降。

传统无头浏览器(Headless Chrome)的特征很明显,平台很容易检测出来。CDP 模式规避了这个问题。

如果需要在服务器上部署,也可以切换为标准 Playwright 模式:

# config/base_config.pyENABLE_CDP_MODE =False# 切换为标准 Playwright 模式

然后安装浏览器驱动:

uv run playwright install

数据怎么存,你说了算

MediaCrawler 支持多种存储方式,在配置文件里切换即可:

存储类型

适用场景

CSV / Excel

快速导入 Excel 分析,给不懂技术的同事用

JSON / JSONL

程序做二次处理,接后续分析管道

SQLite

本地轻量存储,不需要额外装数据库

MySQL / MongoDB

生产环境、团队共享数据

个人项目用 SQLite 基本够了,不需要额外搭服务。如果是团队共用或需要长期存储,上 MySQL 或 MongoDB。


还有个 WebUI,不用命令行也能用

不习惯命令行的话,可以跑内置的 WebUI:

uv run uvicorn api.main:app --port 8080 --reload

浏览器打开http://localhost:8080,可视化配置爬取参数、实时查看运行日志、预览采集结果。对非技术背景的运营同事来说友好很多。


实际能拿来做什么

几个真实落地场景:

舆情监控:设置关键词定时抓小红书、微博上的讨论,自动生成词云图,快速发现负面舆情集中在哪个话题。

竞品分析:抓竞品账号的所有内容,统计发布频率、分析高互动帖子类型,找出自己账号的差异化空间。

用户研究:围绕目标产品批量采集评论,跑情感分析或关键词聚类,了解用户真实痛点,替代费时费力的人工筛选。

选题决策:搜索目标领域的热门关键词,看最近什么内容在涨,帮内容团队做选题参考,有数据支撑比拍脑袋靠谱。


Pro 版本额外有什么

开源版已经够用,但 Pro 版本(付费订阅)有几个值得关注的功能:

  • 断点续爬:爬到一半断掉不用从头来,大量数据场景必备

  • 多账号支持:分散请求频率,降低单账号限速风险

  • 去除 Playwright 依赖:部署更简单,Linux 服务器直接跑

  • 自媒体内容拆解 Agent:AI 自动分析采集内容

  • AI Agent Skill 支持:可通过 Claude Code / Cursor 一键调用,让 Agent 自动爬取数据

个人学习或小规模使用,开源版完全足够。需要生产级可靠性的场景,再考虑 Pro。


关于合规,这句话必须说

MediaCrawler 项目明确标注:仅供学习和技术研究使用,禁止商业用途。

用爬虫采集数据,法律边界这几年越来越清晰。几个基本原则:只抓公开可见的数据,不抓平台明确禁止的接口,不做大规模商业变现。合理使用,安全使用。


写在最后

MediaCrawler 的价值不在于功能多,而在于把门槛真的降下来了。不用逆向,不用研究加密算法,配置好关键词,一行命令跑起来,数据就出来了。

对做数据分析、品牌监测、学术研究的人来说,这个工具值得放进工具箱。

53K Star 不是虚的。

GitHub:https://github.com/NanmiCoder/MediaCrawler

作者 B 站主页:https://space.bilibili.com/434377496(分享爬虫技术和 AI 内容,感兴趣可以关注)

如果你用 MediaCrawler 做过有意思的项目,评论区聊聊你的场景——你最想抓哪个平台的数据?

我们下期再见!

PS:本文部分内容由AI辅助创作

http://www.jsqmd.com/news/1106362/

相关文章:

  • 2026 跨境云网融合服务商榜单:海外企业组网与安全运维推荐
  • 企业微信二次开发中的定期对账机制
  • 墨香情手游官方下载:重拾纯粹武侠情怀开启全新快意恩仇江湖征途
  • 2026年AIGC检测怎么过?5大检测平台对比+AI痕迹降低实战指南
  • ICM-42688-P与PIC18F4553在机器人控制与工业监测中的应用
  • 类比StandardServer, 抓住StandardService整体类依赖结构来理解
  • Better BibTeX架构解析:为LaTeX用户打造的企业级文献管理解决方案
  • 【节点】[Clamp节点]原理解析与实际应用
  • Kubernetes 核心机制与运维实践知识精要
  • 别折腾了!3步教你用标准 API 调通企业微信外部群机器人
  • Python 最大冤案:你以为 `await` 在“死等”?它其实在
  • 如何轻松地从 iPhone 备份恢复 iPad?
  • 任务计划程序不显示后边的信息
  • 墨香情手游官方下载:均衡稳定经济生态适配养老休闲打金玩家群体
  • 张鹏翔在AI营销实战方法论沙龙上详解智能体如何助力企业长效流量增长
  • Apache SeaTunnel 搞定瀚高数据库读写一把过
  • SPI EEPROM与MCU高速数据检索方案解析
  • 如何把报告错误消灭在出稿前?AI报告审核结合IACheck实现前置校验
  • 好用还专业!盘点2026年最强的的降AI率软件
  • 别再建一个无人问津的知识库:用AI原生平台打造活文档系统
  • CSS定位:relative、absolute、fixed、sticky
  • 2024年南安多功能太阳能路灯选购指南:3招教你挑对好产品
  • LTE Cat 1bis模组LEXI-R10401D与PIC18F96J94的物联网开发实践
  • 终极免费微信网页版插件:5分钟实现跨设备聊天自由
  • 学无止境--linux 注册虚拟网卡将SDK(厂商)上送至CPU的报文注入协议栈
  • LV3296与dsPIC30F3014在工业数据采集中的高效应用
  • ROS2基本操作指令:从“节点”到“机器人”的完整工具箱
  • SickOs-1.1靶机渗透
  • 墨香情手游官方下载:2026 国风武侠手游优选正版高速官方下载通道
  • 重庆市二手房价格数据分析与可视化系统