免责声明:
大家请以学习为目的使用本仓库⚠️⚠️⚠️⚠️,爬虫违法违规的案件
本仓库的所有内容仅供学习和参考之用,禁止用于商业用途。任何人或组织不得将本仓库的内容用于非法用途或侵犯他人合法权益。本仓库所涉及的爬虫技术仅用于学习和研究,不得用于对其他平台进行大规模爬虫或其他非法行为。对于因使用本仓库内容而引起的任何法律责任,本仓库不承担任何责任。使用本仓库的内容即表示您同意本免责声明的所有条款和条件。
点击查看更为详细的免责声明。点击跳转
一个功能强大的多平台自媒体数据采集工具,支持小红书、抖音、快手、B站、微博、贴吧、知乎等主流平台的公开信息抓取。
| 平台 | 关键词搜索 | 指定帖子ID爬取 | 二级评论 | 指定创作者主页 | 登录态缓存 | IP代理池 | 生成评论词云图 |
|---|---|---|---|---|---|---|---|
| 小红书 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 抖音 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 快手 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| B 站 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 微博 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 贴吧 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 知乎 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
💡 如果这个项目对您有帮助,请给个 ⭐ Star 支持一下!
在进行下一步操作之前,请确保电脑上已经安装了 uv:
uv --version,如果正常显示版本号,证明已经安装成功项目依赖 Node.js,请前往官网下载安装:
# 进入项目目录
cd MediaCrawler
# 使用 uv sync 命令来保证 python 版本和相关依赖包的一致性
uv sync
如果使用默认的 CDP 模式(连接已有 Chrome 浏览器),无需安装浏览器驱动。仅在使用标准 Playwright 模式时需要安装。
# 仅在标准 Playwright 模式下需要安装浏览器驱动
uv run playwright install
项目默认使用 CDP 模式连接用户已有的 Chrome 浏览器,可以复用浏览器已有的登录状态、Cookie、扩展等,大幅降低平台风控检测风险。
使用前需要:
chrome://inspect/#remote-debugging,勾选 "Allow remote debugging for this browser instance"Server running at: 127.0.0.1:9222 表示已就绪💡 提示:运行爬虫后,Chrome 浏览器会弹出确认对话框,点击"接受"即可。程序会等待用户确认,60秒内操作完成即可。
如果不想使用 CDP 模式,可以在
config/base_config.py中设置ENABLE_CDP_MODE = False切换为标准 Playwright 模式。
# 在 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
# 命令行开关
uv run main.py --platform xhs --type detail --specified_id <帖子URL或ID> --get_media true
# 或在 config/base_config.py 中设置 ENABLE_GET_MEDIA = True
**落盘结构**(`SAVE_DATA_PATH` 为空时落在 `data/` 下):
data/xhs/media/{帖子ID}/
├── cover.jpg # 封面
├── video.mp4 # 视频(B站为 DASH 合流产物)
└── 001.jpg # 图文帖的图片
**支持平台**:小红书、抖音、快手、B站、微博。贴吧与知乎的数据结构中没有媒体字段,暂不支持。
**关于 B 站**:
- 安装 [ffmpeg](https://ffmpeg.org/) 后可走 DASH 路径获取最高画质(音视频分轨下载后无损合流);未安装时自动降级为 mp4 直链,产物名为 `video-durl.mp4` 以便区分
- 清晰度由 `config/bilibili_config.py` 的 `BILI_QN` 控制(默认 80 = 1080p);未登录或权限不足时若高清取流被拒,会自动逐档降级到实际可下载的清晰度
**说明**:
- 媒体下载失败只记录日志,不会中断爬取
- 已存在的文件会被跳过;需要重新下载时删掉对应目录即可
- 下载是串行跟随爬取流程的(未做并发下载),避免给平台 CDN 造成压力
# 终端 1:启动 API 服务器(默认端口 8080)
uv run uvicorn api.main:app --port 8080 --reload
# 终端 2:启动前端开发服务器
cd webui
npm install
npm run dev # 默认在 5173 端口启动,并代理 /api 到 8080
启动成功后,访问 `http://localhost:5173/` 即可打开 WebUI 界面。
> 首次打开会进行环境检测(调用 `/api/env/check`),请确保后端服务已启动。如果检测失败,可点击「跳过检测」临时跳过。
#### 构建生产资源
如果希望通过 API 服务器直接提供 WebUI 静态资源,需要先构建前端:
cd webui
npm install
npm run build # 产物输出到 api/webui/
构建完成后,只需启动 API 服务器:
uv run uvicorn api.main:app --port 8080 --reload
然后访问 `http://localhost:8080` 即可。
#### WebUI 功能特性
- 可视化配置爬虫参数(平台、登录方式、爬取类型等)
- 实时查看爬虫运行状态和日志
- 数据预览和导出
#### 界面预览
# 进入项目根目录
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
MediaCrawler 支持多种数据存储方式,包括 CSV、JSON、JSONL、Excel、SQLite 和 MySQL 数据库。
📖 详细使用说明请查看:数据存储指南
🚀 MediaCrawlerPro 重磅发布 🚀!更多的功能,更好的架构设计!开源不易,欢迎订阅支持!
| 赞助商 | 介绍 |
|---|---|
|
TikHub.io 提供 900+ 高稳定性数据接口,覆盖 TK、DY、XHS、Y2B、Ins、X 等 14+ 海内外主流平台,支持用户、内容、商品、评论等多维度公开数据 API,并配套 4000 万+ 已清洗结构化数据集,使用邀请码 cfzyejV9 注册并充值,即可额外获得 $2 赠送额度。
|
|
NodeMaven 是面向网页抓取和自动化场景的高效代理服务商,提供市面上最高质量的 IP。主要优势包括 99.9% 可用性、ZIP 邮编定位、IP 过滤(所有代理的欺诈评分均低于 97%)、无需 KYC,以及代理带宽检测器、Meta 标签检测器、IP 查询等独家免费工具。MediaCrawler 用户使用优惠码 CRAWLER35 可享移动和住宅代理 35% 折扣,使用 CRAWLER40 可享 ISP(静态)代理 40% 折扣。👉 访问 NodeMaven
|
|
感谢 OpenLux 对本项目的赞助!OpenLux 是一个面向企业的一站式 AI 聚合平台,汇集全球各大厂商主流大模型,平台提供高效、稳定的服务与及时的技术支持。Claude、OpenAI、Gemini 系列模型基准折扣分别低至官方的 0.882 折、0.4 折和 0.8 折。MediaCrawler 用户还可享受专属福利:通过专属链接注册,充值最高可享 7.5% 优惠!👉 立即体验 |
|
SX.ORG 是专为高频数据采集与反爬对抗打造的高性能代理网络,完美适配 MediaCrawler 等多平台抓取工具。核心优势包括全球 190+ 地区真实住宅 IP 池、99.9% 稳定连通率、精准国家/城市及 ASN 运营商定位、全面支持 HTTP(S) 与 SOCKS5 协议,以及针对社交媒体风控优化的智能会话轮换。MediaCrawler 用户使用专属优惠码 CRAWLER3G 注册即可免费领取 3GB 优质测试流量。👉 访问 SX.ORG 领取 3GB 流量
|
|
ProxyLane 提供中国住宅 IP(电信、联通、移动),适合在海外服务器运行 MediaCrawler,出口可固定到上海、北京、广州、深圳等城市。在 static 模式的代理用户名后加 _c_CN_city_Shanghai 即可使用上海住宅 IP,完整配置见 3 步接入指南。MediaCrawler 用户使用优惠码 MEDIACRAWLER3GB 注册即可免费领取 3GB 流量。👉 免费领取 3GB
|
|
Proxy-Seller 是面向网页抓取、数据采集与自动化场景的专业代理服务商,提供住宅、移动(4G/5G/LTE)、静态 ISP、数据中心 IPv4 与 IPv6 五大产品线,覆盖全球 220+ 地区,拥有 4700 万+ 住宅 IP 资源,可精准定位国家、城市及运营商(ISP)。主要优势包括 99.7% 可用性、全面支持 HTTP(S) 与 SOCKS5 协议、静态/轮换 IP 灵活切换、高并发请求支持,以及提供 RESTful API 与多语言 SDK(Python、Node.js、PHP、Java、Go),并配备 24/7 技术支持。服务通过 ISO/IEC 27001 与 ISO 9001 认证,全球用户已超 18.5 万,适合 MediaCrawler 等多平台抓取工具使用。MediaCrawler 用户使用优惠码 MCRAWLER15 可享 15% 折扣。👉 访问 Proxy-Seller
|
|
感谢 DragTokens(Drag API) 对本项目的赞助!DragTokens 专注于为开发者提供多模型 API 中转服务,支持 Claude Code、Codex、Gemini CLI 等 AI 编程工具,覆盖 GPT、Claude、Gemini 等主流模型。Claude 官方客户端专用分组倍率低至 1.1×(对比官方 API 约 1.55 折,节省约 84.5%)、Codex 倍率低至 0.3×(约 0.42 折,节省约 96%)、Gemini 倍率低至 0.25×(约 0.35 折,节省约 96.5%),号池峰值 TPM 达 7 亿。 🎁 通过 专属链接注册的新用户即送赠金,单次充值满 100 元还可享受 10% 返现!配套新手入门、工具配置及 API 示例文档,接入有教程,使用有指引。不存储您的提示词与模型回复,并为企业及高校团队提供专属账户池、对公转账与开票支持。 |
成为赞助者,可以将您的产品展示在这里,每天获得大量曝光!
联系方式:
- 微信:relakkes
- 邮箱:relakkes@gmail.com
如果这个项目对您有帮助,欢迎打赏支持,您的每一份支持都是我持续更新的动力 ❤️
![]() 微信赞赏 |
![]() 支付宝 |
Buy Me a Coffee |
如果这个项目对您有帮助,请给个 ⭐ Star 支持一下,让更多的人看到 MediaCrawler!
| 日期 | 榜单 | 排名 | 周期新增 | 总 STAR |
|---|