🕷️ MediaCrawler

多平台自媒体数据采集工具 — 开源爬虫项目分析
⭐ 27k+ Stars 🐍 Python 3.11 🎭 Playwright 📦 7大平台 📜 MIT License
🌐
7
支持平台
小红书/抖音/快手/B站/微博/贴吧/知乎
27k+
GitHub Stars
社区认可度极高
🔧
7×7
功能矩阵
每平台7项核心能力全覆盖
💾
6
存储格式
CSV/JSON/JSONL/Excel/SQLite/MySQL

📖 项目简介

MediaCrawler 是一个功能强大的多平台自媒体数据采集工具,由开发者 NanmiCoder 开源,支持小红书、抖音、快手、B站、微博、贴吧、知乎等主流平台的公开信息抓取。

  • 核心技术:基于 Playwright 浏览器自动化框架登录保存登录态
  • 无需JS逆向:利用保留登录态的浏览器上下文环境,通过 JS 表达式获取签名参数
  • 优势特点:无需逆向复杂的加密算法,大幅降低技术门槛

💡 核心价值

  • 传统爬虫需要逆向各平台的加密签名算法,技术门槛极高且维护成本大
  • MediaCrawler 通过浏览器环境直接获取签名,一套架构覆盖7个平台
  • CDP 模式复用已有 Chrome 登录态,大幅降低平台风控检测风险
  • 提供 WebUI 可视化界面,非技术人员也能使用

📊 项目热度趋势(示意)

📋 平台功能矩阵

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

📊 各平台功能覆盖度

🏗️ 系统架构

用户配置
关键词/帖子ID
main.py
入口调度
Playwright
浏览器自动化
平台适配层
7大平台Crawler
数据存储
CSV/JSON/DB
Chrome CDP
复用登录态
JS签名获取
无需逆向
IP代理池
反爬对抗
WebUI
FastAPI + Vite

🔧 技术栈

🐍 Python 3.11 🎭 Playwright 📦 uv 包管理 🟢 Node.js ≥16 ⚡ FastAPI 🎨 Vite 🗄️ SQLite/MySQL 🌐 Chrome CDP

🔑 核心技术原理

  • Playwright 浏览器自动化:模拟真实用户登录,保存 Cookie/Session
  • CDP 模式:连接已有 Chrome 浏览器,复用登录态,降低风控
  • JS签名获取:在浏览器上下文中直接执行 JS 获取签名,无需逆向加密算法
  • 平台适配层:每个平台独立 Crawler 类,统一接口设计
🔍

关键词搜索爬取

根据配置的关键词自动搜索相关帖子,爬取帖子详情与评论信息

📄

指定帖子爬取

提供帖子ID列表,精准获取指定帖子的完整信息与评论数据

💬

二级评论采集

支持爬取评论的回复内容,完整还原讨论区的对话结构

👤

创作者主页

爬取指定创作者的主页内容,分析其发布策略和内容特征

🔐

登录态缓存

保存登录状态避免频繁扫码登录,提升使用体验和爬取效率

🌐

IP代理池

内置代理池管理,自动切换IP应对平台反爬策略

☁️

评论词云图

自动生成评论关键词词云图,直观展示舆论热点

🖥️

WebUI 可视化

基于 FastAPI + Vite 的 Web 界面,无需命令行即可操作爬虫

🚀 环境准备

  • uv:推荐的 Python 包管理工具(安装指南
  • Node.js:>= 16.0.0(抖音、知乎签名需要)
  • Chrome:>= 144 版本,需开启远程调试
  • Python:建议 3.11

📦 安装与运行

# 1. 克隆项目
git clone https://github.com/NanmiCoder/MediaCrawler.git
cd MediaCrawler

# 2. 安装依赖
uv sync

# 3. 关键词搜索爬取(以小红书为例)
uv run main.py --platform xhs --lt qrcode --type search

# 4. 指定帖子ID爬取
uv run main.py --platform xhs --lt qrcode --type detail

# 5. 启动 WebUI(可选)
uv run uvicorn api.main:app --port 8080 --reload

🌐 Chrome CDP 配置

项目默认使用 CDP 模式连接已有 Chrome 浏览器,使用前需:

  • 安装最新版 Chrome(>= 144)
  • 地址栏输入 chrome://inspect/#remote-debugging
  • 勾选 "Allow remote debugging for this browser instance"
  • 确认显示 Server running at: 127.0.0.1:9222

📊 开源版 vs Pro 版

功能维度开源版Pro 版
平台支持7大平台全覆盖7大平台 + 持续扩展
核心功能搜索/详情/评论/创作者主页全部开源版功能
断点续爬不支持✅ 支持
多账号单账号✅ 多账号+IP代理池
Playwright 依赖需要✅ 已去除
Linux 支持部分✅ 完整支持
AI Agent Skill不支持✅ OpenClaw/Claude/Cursor
首页信息流不支持✅ HomeFeed
视频下载器不支持✅ 桌面端
代码质量学习参考级企业级架构
价格免费付费订阅