NanmiCoder/MediaCrawler
GitHub: NanmiCoder/MediaCrawler
一款支持小红书、抖音、快手、B站、微博、贴吧、知乎的多平台自媒体爬虫工具,基于 Playwright 浏览器自动化无需 JS 逆向即可采集公开内容和评论数据。
Stars: 44750 | Forks: 9774
# 🔥 MediaCrawler - 自媒体平台爬虫 🕷️
[](https://github.com/NanmiCoder/MediaCrawler/stargazers)
[](https://github.com/NanmiCoder/MediaCrawler/network/members)
[](https://github.com/NanmiCoder/MediaCrawler/issues)
[](https://github.com/NanmiCoder/MediaCrawler/pulls)
[](https://github.com/NanmiCoder/MediaCrawler/blob/main/LICENSE)
[](README.md)
[](README_en.md)
[](README_es.md)
## 📖 项目简介
一个功能强大的**多平台自媒体数据采集工具**,支持小红书、抖音、快手、B站、微博、贴吧、知乎等主流平台的公开信息抓取。
### 🔧 技术原理
- **核心技术**:基于 [Playwright](https://playwright.dev/) 浏览器自动化框架登录保存登录态
- **无需JS逆向**:利用保留登录态的浏览器上下文环境,通过 JS 表达式获取签名参数
- **优势特点**:无需逆向复杂的加密算法,大幅降低技术门槛
## ✨ 功能特性
| 平台 | 关键词搜索 | 指定帖子ID爬取 | 二级评论 | 指定创作者主页 | 登录态缓存 | IP代理池 | 生成评论词云图 |
| ------ | ---------- | -------------- | -------- | -------------- | ---------- | -------- | -------------- |
| 小红书 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 抖音 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 快手 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| B 站 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 微博 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 贴吧 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 知乎 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
## 🚀 快速开始
## 📋 前置依赖
### 🚀 uv 安装(推荐)
在进行下一步操作之前,请确保电脑上已经安装了 uv:
- **安装地址**:[uv 官方安装指南](https://docs.astral.sh/uv/getting-started/installation)
- **验证安装**:终端输入命令 `uv --version`,如果正常显示版本号,证明已经安装成功
- **推荐理由**:uv 是目前最强的 Python 包管理工具,速度快、依赖解析准确
### 🟢 Node.js 安装
项目依赖 Node.js,请前往官网下载安装:
- **下载地址**:https://nodejs.org/en/download/
- **版本要求**:>= 16.0.0
### 📦 Python 包安装
```
# 进入项目目录
cd MediaCrawler
# 使用 uv sync 命令来保证 python 版本和相关依赖包的一致性
uv sync
```
### 🌐 浏览器驱动安装
```
# 安装浏览器驱动
uv run playwright install
```
## 🚀 运行爬虫程序
```
# 在 config/base_config.py 查看配置项目功能,写的有中文注释
# 从配置文件中读取关键词搜索相关的帖子并爬取帖子信息与评论
uv run main.py --platform xhs --lt qrcode --type search
# 从配置文件中读取指定的帖子ID列表获取指定帖子的信息与评论信息
uv run main.py --platform xhs --lt qrcode --type detail
# 打开对应APP扫二维码登录
# 其他平台爬虫使用示例,执行下面的命令查看
uv run main.py --help
```
## 💾 数据保存
MediaCrawler 支持多种数据存储方式,包括 CSV、JSON、Excel、SQLite 和 MySQL 数据库。
📖 **详细使用说明请查看:[数据存储指南](docs/data_storage_guide.md)**
## 💬 交流群组
- **微信交流群**:[点击加入](https://nanmicoder.github.io/MediaCrawler/%E5%BE%AE%E4%BF%A1%E4%BA%A4%E6%B5%81%E7%BE%A4.html)
- **B站账号**:[关注我](https://space.bilibili.com/434377496),分享AI与爬虫技术知识
## 📚 其他
- **常见问题**:[MediaCrawler 完整文档](https://nanmicoder.github.io/MediaCrawler/)
- **爬虫入门教程**:[CrawlerTutorial 免费教程](https://github.com/NanmiCoder/CrawlerTutorial)
- **新闻爬虫开源项目**:[NewsCrawlerCollection](https://github.com/NanmiCoder/NewsCrawlerCollection)
## 📚 参考
- **小红书签名仓库**:[Cloxl 的 xhs 签名仓库](https://github.com/Cloxl/xhshow)
- **小红书客户端**:[ReaJason 的 xhs 仓库](https://github.com/ReaJason/xhs)
- **短信转发**:[SmsForwarder 参考仓库](https://github.com/pppscn/SmsForwarder)
- **内网穿透工具**:[ngrok 官方文档](https://ngrok.com/docs/)
# 免责声明
🖥️ WebUI 可视化操作界面
MediaCrawler 提供了基于 Web 的可视化操作界面,无需命令行也能轻松使用爬虫功能。 #### 启动 WebUI 服务 ``` # 启动 API 服务器(默认端口 8080) uv run uvicorn api.main:app --port 8080 --reload # 或者使用模块方式启动 uv run python -m api.main ``` 启动成功后,访问 `http://localhost:8080` 即可打开 WebUI 界面。 #### WebUI 功能特性 - 可视化配置爬虫参数(平台、登录方式、爬取类型等) - 实时查看爬虫运行状态和日志 - 数据预览和导出 #### 界面预览
🔗 使用 Python 原生 venv 管理环境(不推荐)
#### 创建并激活 Python 虚拟环境 ``` # 进入项目根目录 cd MediaCrawler # 创建虚拟环境 # 我的 python 版本是:3.11 requirements.txt 中的库是基于这个版本的 # 如果是其他 python 版本,可能 requirements.txt 中的库不兼容,需自行解决 python -m venv venv # macOS & Linux 激活虚拟环境 source venv/bin/activate # Windows 激活虚拟环境 venv\Scripts\activate ``` #### 安装依赖库 ``` pip install -r requirements.txt ``` #### 安装 playwright 浏览器驱动 ``` playwright install ``` #### 运行爬虫程序(原生环境) ``` # 项目默认是没有开启评论爬取模式,如需评论请在 config/base_config.py 中的 ENABLE_GET_COMMENTS 变量修改 # 一些其他支持项,也可以在 config/base_config.py 查看功能,写的有中文注释 # 从配置文件中读取关键词搜索相关的帖子并爬取帖子信息与评论 python main.py --platform xhs --lt qrcode --type search # 从配置文件中读取指定的帖子ID列表获取指定帖子的信息与评论信息 python main.py --platform xhs --lt qrcode --type detail # 打开对应APP扫二维码登录 # 其他平台爬虫使用示例,执行下面的命令查看 python main.py --help ```
## 1. 项目目的与性质
本项目(以下简称“本项目”)是作为一个技术研究与学习工具而创建的,旨在探索和学习网络数据采集技术。本项目专注于自媒体平台的数据爬取技术研究,旨在提供给学习者和研究者作为技术交流之用。
## 2. 法律合规性声明
本项目开发者(以下简称“开发者”)郑重提醒用户在下载、安装和使用本项目时,严格遵守中华人民共和国相关法律法规,包括但不限于《中华人民共和国网络安全法》、《中华人民共和国反间谍法》等所有适用的国家法律和政策。用户应自行承担一切因使用本项目而可能引起的法律责任。
## 3. 使用目的限制
本项目严禁用于任何非法目的或非学习、非研究的商业行为。本项目不得用于任何形式的非法侵入他人计算机系统,不得用于任何侵犯他人知识产权或其他合法权益的行为。用户应保证其使用本项目的目的纯属个人学习和技术研究,不得用于任何形式的非法活动。
## 4. 免责声明
开发者已尽最大努力确保本项目的正当性及安全性,但不对用户使用本项目可能引起的任何形式的直接或间接损失承担责任。包括但不限于由于使用本项目而导致的任何数据丢失、设备损坏、法律诉讼等。
## 5. 知识产权声明
本项目的知识产权归开发者所有。本项目受到著作权法和国际著作权条约以及其他知识产权法律和条约的保护。用户在遵守本声明及相关法律法规的前提下,可以下载和使用本项目。
## 6. 最终解释权
关于本项目的最终解释权归开发者所有。开发者保留随时更改或更新本免责声明的权利,恕不另行通知。
标签:B站爬虫, IP 地址批量处理, MITM代理, Playwright, Python, SEO, Web Scraping, 二进制发布, 命令控制, 小红书爬虫, 开源工具, 微博爬虫, 快手爬虫, 抖音爬虫, 数据采集, 无后门, 浏览器自动化, 特征检测, 百度贴吧爬虫, 知乎爬虫, 社交媒体数据, 自媒体爬虫, 舆情监控, 视频爬取, 评论抓取, 逆向工具