MediaCrawler README

The project's README from github.com/NanmiCoder/MediaCrawler. As one markdown file: README.md.

🔥 MediaCrawler - 自媒体平台爬虫 🕷️

🤝 特别感谢金牌赞助商

BrowserAct
BrowserAct 支持一句话从任意网站提取数据。无需代码,一次构建、稳定复用,Token 消耗极低。BrowserAct 使用真实浏览器自动构建数据采集 Bot,内置隐身浏览、验证码处理和住宅代理,直接输出结构化结果。立即免费试用。

NanmiCoder%2FMediaCrawler | Trendshift

GitHub Stars GitHub Forks GitHub Issues GitHub Pull Requests License 中文 English Español

免责声明:

大家请以学习为目的使用本仓库⚠️⚠️⚠️⚠️,爬虫违法违规的案件

本仓库的所有内容仅供学习和参考之用,禁止用于商业用途。任何人或组织不得将本仓库的内容用于非法用途或侵犯他人合法权益。本仓库所涉及的爬虫技术仅用于学习和研究,不得用于对其他平台进行大规模爬虫或其他非法行为。对于因使用本仓库内容而引起的任何法律责任,本仓库不承担任何责任。使用本仓库的内容即表示您同意本免责声明的所有条款和条件。

点击查看更为详细的免责声明。点击跳转

📖 项目简介

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

🔧 技术原理

✨ 功能特性

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

MediaCrawlerPro 重磅发布!开源不易,欢迎订阅支持

专注于学习成熟项目的架构设计,不仅仅是爬虫技术,Pro 版本的代码设计思路同样值得深入学习!

MediaCrawlerPro 相较于开源版本的核心优势:

🎯 核心功能升级

🏗️ 架构设计优化

🎁 额外功能

点击查看:MediaCrawlerPro 项目主页 更多介绍

🚀 快速开始

💡 如果这个项目对您有帮助,请给个 ⭐ Star 支持一下!

📋 前置依赖

🚀 uv 安装(推荐)

在进行下一步操作之前,请确保电脑上已经安装了 uv:

🟢 Node.js 安装

项目依赖 Node.js,请前往官网下载安装:

📦 Python 包安装

# 进入项目目录
cd MediaCrawler

# 使用 uv sync 命令来保证 python 版本和相关依赖包的一致性
uv sync

🌐 浏览器驱动安装(可选)

如果使用默认的 CDP 模式(连接已有 Chrome 浏览器),无需安装浏览器驱动。仅在使用标准 Playwright 模式时需要安装。

# 仅在标准 Playwright 模式下需要安装浏览器驱动
uv run playwright install

🌍 Chrome 浏览器配置(推荐)

项目默认使用 CDP 模式连接用户已有的 Chrome 浏览器,可以复用浏览器已有的登录状态、Cookie、扩展等,大幅降低平台风控检测风险。

使用前需要:

  1. 安装最新版 Chrome 浏览器(版本 >= 144),下载地址
  2. 开启远程调试功能:在 Chrome 地址栏输入 chrome://inspect/#remote-debugging,勾选 "Allow remote debugging for this browser instance"
  3. 页面显示 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
🖥️ WebUI 可视化操作界面

MediaCrawler 提供了基于 Web 的可视化操作界面,无需命令行也能轻松使用爬虫功能。

开发调试(推荐)

开发时需要同时启动后端 API 服务和前端 Vite 开发服务器:

# 终端 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 功能特性

  • 可视化配置爬虫参数(平台、登录方式、爬取类型等)
  • 实时查看爬虫运行状态和日志
  • 数据预览和导出

界面预览

WebUI 界面预览
🔗 使用 Python 原生 venv 管理环境(不推荐)

创建并激活 Python 虚拟环境

如果是爬取抖音和知乎,需要提前安装 nodejs 环境,版本大于等于:16 即可

# 进入项目根目录
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 TikHub.io 提供 900+ 高稳定性数据接口,覆盖 TK、DY、XHS、Y2B、Ins、X 等 14+ 海内外主流平台,支持用户、内容、商品、评论等多维度公开数据 API,并配套 4000 万+ 已清洗结构化数据集,使用邀请码 cfzyejV9 注册并充值,即可额外获得 $2 赠送额度。
Atlas CloudAtlas Cloud Atlas Cloud 是一个全模态 AI 推理平台,让开发者通过统一的 AI API 访问视频生成、图像生成和 LLM API,无需分别维护多个厂商集成,即可调用 300+ 精选模型。Atlas Cloud 最新推出 coding plan 优惠,为开发者提供更具性价比的 API 访问预算。
NodeMaven NodeMaven 是面向网页抓取和自动化场景的高效代理服务商,提供市面上最高质量的 IP。主要优势包括 99.9% 可用性、ZIP 邮编定位、IP 过滤(所有代理的欺诈评分均低于 97%)、无需 KYC,以及代理带宽检测器、Meta 标签检测器、IP 查询等独家免费工具。MediaCrawler 用户使用优惠码 CRAWLER35 可享移动和住宅代理 35% 折扣,使用 CRAWLER40 可享 ISP(静态)代理 40% 折扣。👉 访问 NodeMaven

🤝 成为赞助者

成为赞助者,可以将您的产品展示在这里,每天获得大量曝光!

联系方式:


☕ 请作者喝杯咖啡

如果这个项目对您有帮助,欢迎打赏支持,您的每一份支持都是我持续更新的动力 ❤️

微信赞赏
微信赞赏
支付宝
支付宝
Buy Me a Coffee
Buy Me a Coffee

📚 其他

⭐ Star 趋势图

如果这个项目对您有帮助,请给个 ⭐ Star 支持一下,让更多的人看到 MediaCrawler!

Star History Chart

📚 参考

免责声明

1. 项目目的与性质

本项目(以下简称“本项目”)是作为一个技术研究与学习工具而创建的,旨在探索和学习网络数据采集技术。本项目专注于自媒体平台的数据爬取技术研究,旨在提供给学习者和研究者作为技术交流之用。

2. 法律合规性声明

本项目开发者(以下简称“开发者”)郑重提醒用户在下载、安装和使用本项目时,严格遵守中华人民共和国相关法律法规,包括但不限于《中华人民共和国网络安全法》、《中华人民共和国反间谍法》等所有适用的国家法律和政策。用户应自行承担一切因使用本项目而可能引起的法律责任。

3. 使用目的限制

本项目严禁用于任何非法目的或非学习、非研究的商业行为。本项目不得用于任何形式的非法侵入他人计算机系统,不得用于任何侵犯他人知识产权或其他合法权益的行为。用户应保证其使用本项目的目的纯属个人学习和技术研究,不得用于任何形式的非法活动。

4. 免责声明

开发者已尽最大努力确保本项目的正当性及安全性,但不对用户使用本项目可能引起的任何形式的直接或间接损失承担责任。包括但不限于由于使用本项目而导致的任何数据丢失、设备损坏、法律诉讼等。

5. 知识产权声明

本项目的知识产权归开发者所有。本项目受到著作权法和国际著作权条约以及其他知识产权法律和条约的保护。用户在遵守本声明及相关法律法规的前提下,可以下载和使用本项目。

6. 最终解释权

关于本项目的最终解释权归开发者所有。开发者保留随时更改或更新本免责声明的权利,恕不另行通知。

MediaCrawler (NanmiCoder/MediaCrawler)

Searching Database…

Что это такое?Мультиплатформенный краулер для китайских соцсетей: он собирает результаты поиска по ключевым словам, конкретные посты и комментарии к ним с Xiaohongshu, Douyin, Kuaishou, Bilibili, Weibo, Tieba и Zhihu.
Мне придётся всё время сидеть в терминале, или есть интерфейс?Подойдёт и то, и другое: можно работать из командной строки, а можно через встроенный WebUI — настроить сбор данных, следить за статусом и логами в реальном времени, а также просматривать и экспортировать данные.
Как выглядит первый запуск?После установки зависимостей режим CDP по умолчанию требует Chrome 144+ с включённой удалённой отладкой на странице chrome://inspect/#remote-debugging; краулер затем работает через ваш браузер, в котором вы уже залогинены.
Что должно быть на моём компьютере до установки?uv для Python-пакетов, а также Node.js версии 16 или новее — Node обязателен для краулинга Douyin и Zhihu. Драйвер браузера нужен, только если вы отключите режим CDP в пользу обычного Playwright.
Могу ли я использовать данные как захочу?Нет. В дисклеймере сказано, что проект предназначен только для обучения и исследований: коммерческое использование запрещено, как и массовый краулинг платформ и любое другое незаконное применение.
Он запустится на моём компьютере с Windows, или это только для Mac/Linux?Это обычный Python плюс Node и Chrome, поэтому работают Windows, macOS и Linux; всё выполняется на вашем собственном компьютере, а результаты сохраняются локально.
Как он получает подписи запросов, не взламывая каждую платформу?Он логинится через реальный браузер под управлением Playwright, а затем читает нужные параметры подписи с помощью JS-выражений внутри этой залогиненной сессии — так что шифрование платформ взламывать не приходится.
Какие функции сбора данных работают на всех семи платформах?На каждой платформе поддерживаются поиск по ключевым словам, краулинг по ID поста, комментарии второго уровня, страница выбранного автора, сохранённое состояние входа, пул IP-прокси и создание облака слов из комментариев.
В каких форматах можно сохранять собранные данные?Локально — в любом настроенном хранилище: CSV, JSON, JSONL, Excel, SQLite или база данных MySQL.
Что такое MediaCrawlerPro?Это платный подписочный аналог от того же автора: там есть возобновляемый краулинг, работа с несколькими аккаунтами, убрана зависимость от Playwright, полная поддержка Linux, десктопный загрузчик видео и переработанная архитектура, которую, по словам автора, стоит изучить.
Creator
NanmiCoder
Size
29.8 MB
Stars
67K
Updated
CommitOct 15
Age
3y
Commits · 90 Days