NanmiCoder/MediaCrawlerView GitHub Homepage for Latest Official Releases
MediaCrawler 是一个功能强大的多平台自媒体爬虫工具
NOASSERTIONPythonMediaCrawlerNanmiCoder 35.3k Last Updated: August 06, 2025
MediaCrawler - 多平台自媒体爬虫工具
项目概述
MediaCrawler 是一个功能强大的多平台自媒体爬虫工具,由 NanmiCoder 开发维护。该项目基于 Playwright 技术,能够抓取多个主流社交媒体平台的公开信息,包括内容、评论等数据。
技术架构
核心技术
- Playwright: 作为浏览器自动化框架,保留登录状态的浏览器环境
- Python: 主要开发语言,版本要求 3.9.6+
- JavaScript执行: 通过执行JS表达式获取加密参数
- Node.js: 版本要求 16+
工作原理
项目采用 Playwright 搭桥的方式,保留登录成功后的上下文浏览器环境,通过执行 JavaScript 表达式获取一些加密参数。这种方式免去了复现核心加密 JS 代码的复杂工作,大大降低了逆向工程的难度。
环境要求
系统要求
- Python 3.9.6+
- Node.js 16+
依赖管理
项目新增了 uv
来管理项目依赖,可以使用 uv 来替代传统的 pip 进行依赖安装,更加方便快捷。
安装部署
基础安装步骤
# 进入项目根目录
cd MediaCrawler
# 创建虚拟环境
python -m venv venv
# 激活虚拟环境
# macOS & Linux
source venv/bin/activate
# Windows
venv\Scripts\activate
# 安装依赖
pip install -r requirements.txt
# 安装playwright浏览器
playwright install
数据库初始化(可选)
# 执行数据库初始化(仅首次执行)
python db.py
使用方法
基本命令
# 关键词搜索爬取
python main.py --platform xhs --lt qrcode --type search
# 指定帖子ID爬取
python main.py --platform xhs --lt qrcode --type detail
# 查看帮助信息
python main.py --help
配置说明
- 项目默认不开启评论爬取模式
- 如需爬取评论,请在
config/base_config.py
中修改ENABLE_GET_COMMENTS
变量 - 其他功能配置也可在
config/base_config.py
中查看,均有中文注释说明
数据存储
支持的存储方式
- MySQL数据库: 支持关系型数据库存储(需提前创建数据库)
- CSV文件: 保存到
data/
目录下的CSV格式文件 - JSON文件: 保存到
data/
目录下的JSON格式文件
Pro版本优势
项目还提供了 MediaCrawlerPro 版本,相较于开源版本具有以下优势:
- 多账号+IP代理支持(重点功能)
- 去除Playwright依赖,使用更加简单
- 支持Linux环境使用
- 代码重构优化,更易读易维护
- 解耦JS签名逻辑,代码质量更高
- 完美的架构设计,更易扩展
- 新增自媒体视频下载器桌面端软件
- 支持多平台首页信息流推荐(HomeFeed)
法律声明
免责声明
- 本项目仅供学习和研究使用,禁止用于商业用途
- 严禁用于非法目的或侵犯他人合法权益
- 使用者需遵守相关法律法规,自行承担法律责任
- 开发者不承担因使用本项目而引起的任何法律责任
项目价值
MediaCrawler 不仅仅是一个爬虫工具,更是一个优秀的学习项目:
- 架构设计学习: 项目架构设计成熟,值得学习借鉴
- 技术实践: 涵盖多种技术栈的综合应用
- 工程化思维: 从代码组织到部署的完整工程化实践
- 反爬虫技术: 学习现代反爬虫技术的应对方案