กลับไปหน้า Tools

GetNotes Tools

NanmiCoder/MediaCrawler

Tool นี้คืออะไร

MediaCrawler เป็นเครื่องมือรวบรวมข้อมูลจากแพลตฟอร์มโซเชียลมีเดียหลายแห่ง เช่น Xiaohongshu, Douyin, Bilibili และอื่นๆ เหมาะสำหรับนักพัฒนาที่ต้องการดึงข้อมูลสาธารณะโดยไม่ต้องย้อนรอยโค้ด JavaScript ด้วยการใช้ Playwright เพื่อลดความซับซ้อนทางเทคนิค

ข้อมูลโปรเจกต์

ดาว

61.8K

Forks

12.1K

License

ไม่ระบุ

อัปเดต GitHub ล่าสุด

11 ส.ค. 2569

เพิ่มใน GetNotes

17 ส.ค. 2569

Repository

NanmiCoder/MediaCrawler

Ecosystem

Python

แปลและเรียบเรียงโดย AI

เนื้อหาฉบับภาษาไทย

ใช้อ่านเพื่อทำความเข้าใจเบื้องต้น โปรดตรวจสอบรายละเอียดสำคัญกับเอกสารต้นฉบับด้านล่าง

🔥 MediaCrawler - เครื่องมือรวบรวมข้อมูลจากแพลตฟอร์มโซเชียลมีเดีย 🕷️

🤝 ขอขอบคุณผู้สนับสนุนระดับ Gold


NanmiCoder%2FMediaCrawler | Trendshift

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

ข้อจำกัดความรับผิดชอบ:

โปรดใช้ Repository นี้เพื่อวัตถุประสงค์ในการเรียนรู้เท่านั้น⚠️⚠️⚠️⚠️, กรณีการละเมิดกฎหมายเกี่ยวกับการรวบรวมข้อมูล

เนื้อหาทั้งหมดใน Repository นี้มีไว้เพื่อการศึกษาและอ้างอิงเท่านั้น ห้ามนำไปใช้เพื่อวัตถุประสงค์ทางการค้า บุคคลหรือองค์กรใดๆ ห้ามนำเนื้อหาใน Repository นี้ไปใช้เพื่อวัตถุประสงค์ที่ผิดกฎหมาย หรือละเมิดสิทธิ์และผลประโยชน์ที่ชอบด้วยกฎหมายของผู้อื่น เทคนิคการรวบรวมข้อมูลที่เกี่ยวข้องใน Repository นี้มีไว้เพื่อการศึกษาและวิจัยเท่านั้น ห้ามนำไปใช้เพื่อการรวบรวมข้อมูลขนาดใหญ่จากแพลตฟอร์มอื่น หรือกิจกรรมที่ผิดกฎหมายอื่นๆ Repository นี้จะไม่รับผิดชอบต่อความรับผิดทางกฎหมายใดๆ ที่เกิดขึ้นจากการใช้เนื้อหาใน Repository นี้ การใช้เนื้อหาใน Repository นี้ถือว่าคุณยอมรับข้อกำหนดและเงื่อนไขทั้งหมดของข้อจำกัดความรับผิดชอบนี้

คลิกเพื่อดูข้อจำกัดความรับผิดชอบโดยละเอียดเพิ่มเติม คลิกเพื่อไปยังส่วน

📖 แนะนำโปรเจกต์

เครื่องมือรวบรวมข้อมูลจากแพลตฟอร์มโซเชียลมีเดียหลายแห่งที่ทรงพลัง รองรับการดึงข้อมูลสาธารณะจากแพลตฟอร์มหลักๆ เช่น Xiaohongshu, Douyin, Kuaishou, Bilibili, Weibo, Tieba และ Zhihu

🔧 หลักการทางเทคนิค

  • เทคโนโลยีหลัก: ใช้เฟรมเวิร์ก Playwright สำหรับการทำงานอัตโนมัติของเบราว์เซอร์เพื่อล็อกอินและรักษาสถานะการล็อกอิน
  • ไม่ต้องทำ JS Reverse Engineering: ใช้สภาพแวดล้อมเบราว์เซอร์ที่รักษาสถานะการล็อกอินไว้ เพื่อรับพารามิเตอร์ลายเซ็นผ่าน JS expression
  • ข้อดีและคุณสมบัติ: ไม่ต้องย้อนรอยอัลกอริทึมการเข้ารหัสที่ซับซ้อน ช่วยลดอุปสรรคทางเทคนิคได้อย่างมาก

✨ คุณสมบัติ

แพลตฟอร์มค้นหาด้วยคีย์เวิร์ดรวบรวมข้อมูลจาก ID โพสต์ที่ระบุคอมเมนต์ระดับสองหน้าโปรไฟล์ผู้สร้างที่ระบุแคชสถานะการล็อกอินIP Proxy Poolสร้าง Word Cloud จากคอมเมนต์
小红书
抖音
快手
B 站
微博
贴吧
知乎

MediaCrawlerPro เปิดตัวอย่างยิ่งใหญ่! การพัฒนา Open Source นั้นไม่ง่าย ขอเชิญชวนให้สมัครสมาชิกเพื่อสนับสนุน

มุ่งเน้นการเรียนรู้การออกแบบสถาปัตยกรรมของโปรเจกต์ที่สมบูรณ์ ไม่ใช่แค่เทคนิคการรวบรวมข้อมูลเท่านั้น แนวคิดการออกแบบโค้ดของเวอร์ชัน Pro ก็คุ้มค่าแก่การศึกษาอย่างลึกซึ้งเช่นกัน!

MediaCrawlerPro มีข้อได้เปรียบหลักเมื่อเทียบกับเวอร์ชัน Open Source ดังนี้:

🎯 การอัปเกรดฟังก์ชันหลัก

  • Agent แยกส่วนเนื้อหาโซเชียลมีเดีย (ฟังก์ชันใหม่)
  • ฟังก์ชันรวบรวมข้อมูลต่อจากจุดที่หยุด (คุณสมบัติสำคัญ)
  • รองรับหลายบัญชี + IP Proxy Pool (คุณสมบัติสำคัญ)
  • ไม่ต้องพึ่งพา Playwright ใช้งานง่ายขึ้น
  • รองรับสภาพแวดล้อม Linux เต็มรูปแบบ

🏗️ การปรับปรุงการออกแบบสถาปัตยกรรม

  • การปรับโครงสร้างโค้ดให้เหมาะสม อ่านและบำรุงรักษาง่ายขึ้น (แยกส่วนตรรกะลายเซ็น JS)
  • คุณภาพโค้ดระดับองค์กร เหมาะสำหรับการสร้างโปรเจกต์รวบรวมข้อมูลขนาดใหญ่
  • ✅ **การออกแบบสถาปัต

🤝 เป็นผู้สนับสนุน

คุณสามารถแสดงผลิตภัณฑ์ของคุณที่นี่ เพื่อให้ได้รับความสนใจจำนวนมากในแต่ละวัน!

ช่องทางการติดต่อ:

  • WeChat: relakkes
  • อีเมล: relakkes@gmail.com

☕ เลี้ยงกาแฟผู้เขียน

หากโปรเจกต์นี้มีประโยชน์กับคุณ ยินดีรับการสนับสนุน ทุกการสนับสนุนของคุณคือแรงผลักดันให้ผมพัฒนาต่อไป ❤️

📚 อื่นๆ

⭐ กราฟแนวโน้ม Star

หากโปรเจกต์นี้มีประโยชน์กับคุณ โปรดให้ ⭐ Star เพื่อสนับสนุน และช่วยให้ MediaCrawler เป็นที่รู้จักมากขึ้น!

Star History Chart

📚 อ้างอิง

ข้อสงวนสิทธิ์

1. วัตถุประสงค์และลักษณะของโปรเจกต์

โปรเจกต์นี้ (ต่อไปนี้จะเรียกว่า "โปรเจกต์นี้") ถูกสร้างขึ้นเพื่อเป็นเครื่องมือสำหรับการวิจัยและเรียนรู้ทางเทคนิค โดยมีวัตถุประสงค์เพื่อสำรวจและเรียนรู้เทคนิคการรวบรวมข้อมูลจากเครือข่าย โปรเจกต์นี้มุ่งเน้นการวิจัยเทคนิคการรวบรวมข้อมูลจากแพลตฟอร์สื่อสังคมออนไลน์ โดยมีวัตถุประสงค์เพื่อให้นักเรียนและนักวิจัยใช้สำหรับการแลกเปลี่ยนทางเทคนิค

2. คำแถลงการปฏิบัติตามกฎหมาย

ผู้พัฒนาโปรเจกต์นี้ (ต่อไปนี้จะเรียกว่า "ผู้พัฒนา") ขอเตือนผู้ใช้อย่างจริงจังว่า ในการดาวน์โหลด ติดตั้ง และใช้งานโปรเจกต์นี้ จะต้องปฏิบัติตามกฎหมายและข้อบังคับที่เกี่ยวข้องของสาธารณรัฐประชาชนจีนอย่างเคร่งครัด รวมถึงแต่ไม่จำกัดเพียง "กฎหมายความปลอดภัยทางไซเบอร์แห่งสาธารณรัฐประชาชนจีน", "กฎหมายต่อต้านการจารกรรมแห่งสาธารณรัฐประชาชนจีน" และกฎหมายและนโยบายของรัฐที่เกี่ยวข้องทั้งหมด ผู้ใช้จะต้องรับผิดชอบต่อความรับผิดชอบทางกฎหมายทั้งหมดที่อาจเกิดขึ้นจากการใช้โปรเจกต์นี้ด้วยตนเอง

3. ข้อจำกัดวัตถุประสงค์การใช้งาน

โปรเจกต์นี้ห้ามใช้เพื่อวัตถุประสงค์ที่ผิดกฎหมาย หรือกิจกรรมเชิงพาณิชย์ที่ไม่ใช่เพื่อการเรียนรู้หรือการวิจัยโดยเด็ดขาด โปรเจกต์นี้ห้ามใช้เพื่อการบุกรุกระบบคอมพิวเตอร์ของผู้อื่นโดยมิชอบด้วยกฎหมายในทุกรูปแบบ และห้ามใช้เพื่อการละเมิดทรัพย์สินทางปัญญาหรือสิทธิและผลประโยชน์ที่ชอบด้วยกฎหมายของผู้อื่น ผู้ใช้ควรรับรองว่าวัตถุประสงค์ในการใช้โปรเจกต์นี้เป็นเพียงเพื่อการเรียนรู้ส่วนบุคคลและการวิจัยทางเทคนิคเท่านั้น และห้ามใช้เพื่อกิจกรรมที่ผิดกฎหมายในทุกรูปแบบ

4. ข้อสงวนสิทธิ์

ผู้พัฒนาได้พยายามอย่างเต็มที่เพื่อให้มั่นใจถึงความถูกต้องตามกฎหมายและความปลอดภัยของโปรเจกต์นี้ แต่จะไม่รับผิดชอบต่อความเสียหายโดยตรงหรือโดยอ้อมในทุกรูปแบบที่อาจเกิดขึ้นจากการใช้โปรเจกต์นี้ของผู้ใช้ รวมถึงแต่ไม่จำกัดเพียงการสูญหายของข้อมูล ความเสียหายของอุปกรณ์ การดำเนินคดีทางกฎหมาย เป็นต้น

5. คำแถลงสิทธิ์ในทรัพย์สินทางปัญญา

สิทธิ์ในทรัพย์สินทางปัญญาของโปรเจกต์นี้เป็นของผู้พัฒนา โปรเจกต์นี้ได้รับการคุ้มครองโดยกฎหมายลิขสิทธิ์ สนธิสัญญาลิขสิทธิ์ระหว่างประเทศ และกฎหมายและสนธิสัญญาอื่นๆ ที่เกี่ยวข้องกับทรัพย์สินทางปัญญา ผู้ใช้สามารถดาวน์โหลดและใช้โปรเจกต์นี้ได้ภายใต้เงื่อนไขการปฏิบัติตามคำแถลงนี้และกฎหมายและข้อบังคับที่เกี่ยวข้อง

6. สิทธิ์ในการตีความขั้นสุดท้าย

สิทธิ์ในการตีความขั้นสุดท้ายเกี่ยวกับโปรเจกต์นี้เป็นของผู้พัฒนา ผู้พัฒนาขอสงวนสิทธิ์ในการเปลี่ยนแปลงหรืออัปเดตข้อสงวนสิทธิ์นี้ได้ตลอดเวลาโดยไม่ต้องแจ้งให้ทราบล่วงหน้า

เอกสารโปรเจกต์

อ่านเอกสารต้นฉบับ

README วิธีติดตั้ง วิธีใช้งาน และข้อกำหนดจาก repository ต้นฉบับ

ดูไฟล์บน GitHub

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

🤝 特别感谢金牌赞助商

BrowserAct

NanmiCoder%2FMediaCrawler | Trendshift

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

免责声明:

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

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

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

📖 项目简介

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

🔧 技术原理

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

✨ 功能特性

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

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

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

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

🎯 核心功能升级

  • 自媒体内容拆解Agent(新增功能)
  • 断点续爬功能(重点特性)
  • 多账号 + IP代理池支持(重点特性)
  • 去除 Playwright 依赖,使用更简单
  • 完整 Linux 环境支持

🏗️ 架构设计优化

  • 代码重构优化,更易读易维护(解耦 JS 签名逻辑)
  • 企业级代码质量,适合构建大型爬虫项目
  • 完美架构设计,高扩展性,源码学习价值更大

🎁 额外功能

  • 自媒体视频下载器桌面端(适合学习全栈开发)
  • 多平台首页信息流推荐(HomeFeed)
  • AI Agent Skill 支持OpenClaw 🦞 / Claude Code / Cursor 一键安装,让 Agent 自动爬取数据)
  • [ ] 基于评论分析AI Agent正在开发中 🚀🚀

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

🚀 快速开始

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

📋 前置依赖

🚀 uv 安装(推荐)

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

  • 安装地址uv 官方安装指南
  • 验证安装:终端输入命令 uv --version,如果正常显示版本号,证明已经安装成功
  • 推荐理由:uv 是目前最强的 Python 包管理工具,速度快、依赖解析准确

🟢 Node.js 安装

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

📦 Python 包安装

shell
# 进入项目目录
cd MediaCrawler

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

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

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

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

🌍 Chrome 浏览器配置(推荐)

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

使用前需要:

  1. 1安装最新版 Chrome 浏览器(版本 >= 144),下载地址
  2. 2开启远程调试功能:在 Chrome 地址栏输入 chrome://inspect/#remote-debugging,勾选 "Allow remote debugging for this browser instance"
  3. 3页面显示 Server running at: 127.0.0.1:9222 表示已就绪

💡 提示:运行爬虫后,Chrome 浏览器会弹出确认对话框,点击"接受"即可。程序会等待用户确认,60秒内操作完成即可。

如果不想使用 CDP 模式,可以在 config/base_config.py 中设置 ENABLE_CDP_MODE = False 切换为标准 Playwright 模式。

🚀 运行爬虫程序

shell
# 在 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 提供了基于 Web 的可视化操作界面,无需命令行也能轻松使用爬虫功能。

开发调试(推荐)

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

shell
# 终端 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 静态资源,需要先构建前端:

shell
cd webui
npm install
npm run build      # 产物输出到 api/webui/

构建完成后,只需启动 API 服务器:

shell
uv run uvicorn api.main:app --port 8080 --reload

然后访问 http://localhost:8080 即可。

WebUI 功能特性

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

界面预览

WebUI 界面预览

创建并激活 Python 虚拟环境

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

shell
# 进入项目根目录
cd MediaCrawler

# 创建虚拟环境
# 我的 python 版本是:3.11 requirements.txt 中的库是基于这个版本的
# 如果是其他 python 版本,可能 requirements.txt 中的库不兼容,需自行解决
python -m venv venv

# macOS & Linux 激活虚拟环境
source venv/bin/activate

# Windows 激活虚拟环境
venv\Scripts\activate

安装依赖库

shell
pip install -r requirements.txt

安装 playwright 浏览器驱动

shell
playwright install

运行爬虫程序(原生环境)

shell
# 项目默认是没有开启评论爬取模式,如需评论请在 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 重磅发布 🚀!更多的功能,更好的架构设计!开源不易,欢迎订阅支持!

💬 交流群组

💰 赞助商展示

TikHubAtlas CloudAtlas CloudNodeMaven

🤝 成为赞助者

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

联系方式

  • 微信:relakkes
  • 邮箱:relakkes@gmail.com

☕ 请作者喝杯咖啡

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

微信赞赏支付宝Buy Me a Coffee

📚 其他

⭐ Star 趋势图

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

Star History Chart

📚 参考

免责声明

1. 项目目的与性质

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

2. 法律合规性声明

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

3. 使用目的限制

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

4. 免责声明

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

5. 知识产权声明

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

6. 最终解释权

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