GitHub - NanmiCoder/MediaCrawler: Công cụ thu thập dữ liệu từ Tiểu Hồng Thư (ghi chú | bình luận), video Douyin | bình luận, video Kuaishou | bình luận, video Bilibili | bình luận, bài viết Weibo | bình luận, bài viết Baidu Tieba | bình luận & trả lời bình luận | bài viết/bình luận/trả lời Zhihu
🔥 MediaCrawler - Công cụ thu thập dữ liệu từ các nền tảng truyền thông xã hội 🕷️
TUYÊN BỐ MIỄN TRÁCH NHIỆM: Vui lòng sử dụng kho lưu trữ này cho mục đích học tập⚠️⚠️⚠️⚠️. Kho lưu trữ này chỉ cung cấp nội dung cho mục đích học tập và tham khảo. Nghiêm cấm sử dụng cho mục đích thương mại. Bất kỳ cá nhân hoặc tổ chức nào không được sử dụng nội dung của kho lưu trữ này cho các mục đích bất hợp pháp hoặc xâm phạm các quyền hợp pháp của người khác. Các kỹ thuật thu thập dữ liệu liên quan đến kho lưu trữ này chỉ được sử dụng cho mục đích học tập và nghiên cứu, không được sử dụng để thu thập dữ liệu quy mô lớn từ các nền tảng khác hoặc các hành vi bất hợp pháp khác. Kho lưu trữ này không chịu trách nhiệm cho bất kỳ trách nhiệm pháp lý nào phát sinh từ việc sử dụng nội dung của kho lưu trữ này. Việc sử dụng nội dung của kho lưu trữ này đồng nghĩa với việc bạn đồng ý với tất cả các điều khoản và điều kiện của tuyên bố miễn trừ trách nhiệm này. Nhấp để xem tuyên bố miễn trừ trách nhiệm chi tiết hơn.
Một công cụ thu thập dữ liệu mạnh mẽ từ nhiều nền tảng truyền thông xã hội, hỗ trợ thu thập thông tin công khai từ các nền tảng chính như Tiểu Hồng Thư, Douyin, Kuaishou, Bilibili, Weibo, Tieba và Zhihu.
🔧 Nguyên tắc kỹ thuật
Công nghệ cốt lõi: Dựa trên framework tự động hóa trình duyệt Playwright để đăng nhập và lưu trạng thái đăng nhập
Không cần đảo ngược JS: Sử dụng ngữ cảnh trình duyệt đã lưu trạng thái đăng nhập để lấy các tham số chữ ký thông qua biểu thức JS
Ưu điểm: Không cần đảo ngược các thuật toán mã hóa phức tạp, giảm đáng kể ngưỡng kỹ thuật
✨ Tính năng
| Nền tảng | Tìm kiếm bằng từ khóa | Thu thập theo ID bài viết | Bình luận cấp 2 | Thu thập trang chủ của người sáng tạo | Bộ nhớ đệm trạng thái đăng nhập | Nhóm proxy IP | Tạo biểu đồ đám mây từ bình luận |
|---|---|---|---|---|---|---|---|
| Tiểu Hồng Thư | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Douyin | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Kuaishou | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Bilibili | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |
| Tieba | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Zhihu | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
MediaCrawlerPro ra mắt! Mã nguồn mở không dễ, hoan nghênh đăng ký ủng hộ
Tập trung vào việc học hỏi kiến trúc thiết kế của các dự án trưởng thành, không chỉ là kỹ thuật thu thập dữ liệu, mà cả tư duy thiết kế mã của phiên bản Pro cũng đáng để nghiên cứu sâu!
Ưu điểm cốt lõi của MediaCrawlerPro so với phiên bản mã nguồn mở:
- 🎯 Nâng cấp chức năng cốt lõi
- ✅ Agent phân tích nội dung truyền thông xã hội (Tính năng mới)
- ✅ Chức năng tiếp tục thu thập dữ liệu khi bị gián đoạn (Tính năng quan trọng)
- ✅ Hỗ trợ nhiều tài khoản + nhóm proxy IP (Tính năng quan trọng)
- ✅ Loại bỏ sự phụ thuộc vào Playwright, sử dụng đơn giản hơn
- ✅ Hỗ trợ đầy đủ môi trường Linux
- 🏗️ Tối ưu hóa thiết kế kiến trúc
- ✅ Tái cấu trúc và tối ưu hóa mã, dễ đọc và bảo trì hơn (Tách logic chữ ký JS)
- ✅ Chất lượng mã cấp doanh nghiệp, phù hợp để xây dựng các dự án thu thập dữ liệu quy mô lớn
- ✅ Thiết kế kiến trúc hoàn hảo, khả năng mở rộng cao, giá trị học hỏi mã nguồn lớn hơn
- 🎁 Chức năng bổ sung
- ✅ Ứng dụng desktop tải video truyền thông xã hội (Phù hợp để học phát triển full-stack)
- ✅ Đề xuất luồng thông tin trang chủ đa nền tảng (HomeFeed)
- ✅ Hỗ trợ AI Agent Skill (Cài đặt một chạm OpenClaw 🦞 / Claude Code / Cursor, cho phép Agent tự động thu thập dữ liệu)
AI Agent phân tích bình luận đang được phát triển 🚀🚀 Nhấp để xem: Trang chủ dự án MediaCrawlerPro
Thêm giới thiệu 🚀
🚀 Bắt đầu nhanh
💡 Nếu dự án này hữu ích cho bạn, vui lòng cho một ⭐ Star để ủng hộ!
📋 Yêu cầu tiên quyết
🚀 Cài đặt uv (Khuyến nghị)
Trước khi tiến hành bước tiếp theo, hãy đảm bảo rằng uv đã được cài đặt trên máy tính của bạn:
Địa chỉ cài đặt: Hướng dẫn cài đặt chính thức của uv
Xác minh cài đặt: Nhập lệnh uv --version vào terminal, nếu số phiên bản hiển thị bình thường, chứng tỏ đã cài đặt thành công
Lý do khuyến nghị: uv là công cụ quản lý gói Python mạnh nhất hiện tại, tốc độ nhanh và phân tích phụ thuộc chính xác
🟢 Cài đặt Node.js
Dự án phụ thuộc vào Node.js, vui lòng truy cập trang web chính thức để tải xuống và cài đặt:
Địa chỉ tải xuống: https://nodejs.org/en/download/
Yêu cầu phiên bản: >= 16.0.0
📦 Cài đặt gói Python
# 进入项目目录
cd MediaCrawler
# 使用 uv sync 命令来保证 python 版本和相关依赖包的一致性
uv sync
🌐 Cài đặt trình điều khiển trình duyệt
# 安装浏览器驱动
uv run playwright install
🚀 Chạy chương trình thu thập dữ liệu
# 在 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
Xem các tính năng của dự án trong config/base_config.py. Có viết chú thích bằng tiếng Trung.
Đọc các bài viết liên quan đến tìm kiếm từ khóa và thu thập thông tin bài viết và bình luận từ tệp cấu hình.
Đọc danh sách ID bài viết được chỉ định từ tệp cấu hình để lấy thông tin bài viết và thông tin bình luận được chỉ định.
Mở ứng dụng tương ứng và quét mã QR để đăng nhập.
Xem ví dụ sử dụng trình thu thập dữ liệu nền tảng khác bằng cách thực hiện lệnh sau.
🖥️ Giao diện thao tác trực quan WebUI
MediaCrawler cung cấp giao diện thao tác trực quan dựa trên Web, bạn có thể dễ dàng sử dụng các chức năng thu thập dữ liệu mà không cần dòng lệnh.
Khởi động dịch vụ WebUI
# 启动 API 服务器(默认端口 8080)
uv run uvicorn api.main:app --port 8080 --reload
# 或者使用模块方式启动
uv run python -m api.main
Khởi động máy chủ API (cổng mặc định 8080)
Hoặc sử dụng phương pháp module để khởi động.
Sau khi khởi động thành công, hãy truy cập http://localhost:8080 để mở giao diện WebUI.
Tính năng WebUI
- Cấu hình trực quan các tham số thu thập dữ liệu (nền tảng, phương thức đăng nhập, loại thu thập dữ liệu, v.v.)
- Xem trạng thái hoạt động và nhật ký của trình thu thập dữ liệu theo thời gian thực
- Xem trước và xuất dữ liệu
🔗 Sử dụng môi trường quản lý venv gốc của Python (Không khuyến nghị)
Tạo và kích hoạt môi trường ảo Python
Nếu bạn đang thu thập Douyin và Zhihu, bạn cần cài đặt môi trường nodejs trước, phiên bản lớn hơn hoặc bằng: 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
Vào thư mục gốc của dự án
Tạo môi trường ảo
Phiên bản python của tôi là: 3.11. Các thư viện trong requirements.txt dựa trên phiên bản này.
Nếu đó là phiên bản python khác, các thư viện trong requirements.txt có thể không tương thích, bạn cần tự giải quyết.
macOS & Linux kích hoạt môi trường ảo
Windows kích hoạt môi trường ảo
安装依赖库
pip install -r requirements.txt
Cài đặt các thư viện phụ thuộc
安装 playwright 浏览器驱动
playwright install
Cài đặt trình điều khiển trình duyệt playwright
Chạy chương trình thu thập dữ liệu (môi trường gốc)
# 项目默认是没有开启评论爬取模式,如需评论请在 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
Dự án không bật chế độ thu thập dữ liệu bình luận theo mặc định. Nếu bạn cần bình luận, vui lòng sửa đổi biến ENABLE_GET_COMMENTS trong config/base_config.py
Một số mục hỗ trợ khác cũng có thể được xem trong config/base_config.py, có chú thích bằng tiếng Trung.
Đọc các bài viết liên quan đến tìm kiếm từ khóa và thu thập thông tin bài viết và bình luận từ tệp cấu hình.
Đọc danh sách ID bài viết được chỉ định từ tệp cấu hình để lấy thông tin bài viết và thông tin bình luận được chỉ định.
Mở ứng dụng tương ứng và quét mã QR để đăng nhập.
Xem ví dụ sử dụng trình thu thập dữ liệu nền tảng khác bằng cách thực hiện lệnh sau.
💾 Lưu dữ liệu
MediaCrawler hỗ trợ nhiều phương thức lưu trữ dữ liệu, bao gồm CSV, JSON, JSONL, Excel, SQLite và cơ sở dữ liệu MySQL.
📖 Hướng dẫn sử dụng chi tiết: Hướng dẫn lưu trữ dữ liệu
🚀 MediaCrawlerPro ra mắt 🚀! Nhiều tính năng hơn, thiết kế kiến trúc tốt hơn! Mã nguồn mở không dễ, hoan nghênh đăng ký ủng hộ!
💬 Nhóm giao lưu
Nhóm giao lưu WeChat: Nhấp để tham gia
Tài khoản Bilibili: Theo dõi tôi, chia sẻ kiến thức về AI và kỹ thuật thu thập dữ liệu
💰 Nhà tài trợ
TikHub.io cung cấp hơn 900 giao diện dữ liệu có độ ổn định cao, bao gồm 14+ nền tảng chính trong và ngoài nước như TK, DY, XHS, Y2B, Ins, X, v.v., hỗ trợ API dữ liệu công khai đa chiều như người dùng, nội dung, sản phẩm, bình luận, v.v., và đi kèm với hơn 40 triệu bộ dữ liệu có cấu trúc đã được làm sạch. Sử dụng mã mời cfzyejV9 để đăng ký và nạp tiền, bạn sẽ nhận được thêm 2 đô la tín dụng.
Thordata: Nhà cung cấp dịch vụ proxy đáng tin cậy và hiệu quả về chi phí. Cung cấp dịch vụ IP proxy toàn cầu ổn định, hiệu quả và tuân thủ cho các doanh nghiệp và nhà phát triển. Đăng ký ngay bây giờ và nhận bản dùng thử miễn phí proxy dân cư 1GB và 2000 lệnh gọi serp-api.
🤝 Trở thành nhà tài trợ
Trở thành nhà tài trợ, bạn có thể hiển thị sản phẩm của mình ở đây và nhận được lượng lớn hiển thị mỗi ngày!
Thông tin liên hệ:
WeChat: relakkes
Email: relakkes@gmail.com
📚 Khác
Các vấn đề thường gặp: Tài liệu đầy đủ của MediaCrawler
Hướng dẫn nhập môn thu thập dữ liệu: CrawlerTutorial Hướng dẫn miễn phí
Dự án mã nguồn mở thu thập dữ liệu tin tức: NewsCrawlerCollection
⭐ Biểu đồ xu hướng Star
Nếu dự án này hữu ích cho bạn, vui lòng cho một ⭐ Star để ủng hộ và cho nhiều người biết đến MediaCrawler!
📚 Tham khảo
Kho chữ ký của Tiểu Hồng Thư: Kho chữ ký xhs của Cloxl
Ứng dụng khách Tiểu Hồng Thư: Kho xhs của ReaJason
Chuyển tiếp tin nhắn SMS: SmsForwarder Kho tham khảo
Công cụ đường hầm nội bộ: ngrok Tài liệu chính thức
Tuyên bố miễn trừ trách nhiệm
1. Mục đích và bản chất của dự án
Dự án này (sau đây gọi là "Dự án này") được tạo ra như một công cụ nghiên cứu và học tập kỹ thuật, nhằm khám phá và học hỏi các công nghệ thu thập dữ liệu mạng. Dự án này tập trung vào nghiên cứu công nghệ thu thập dữ liệu từ các nền tảng truyền thông xã hội và nhằm mục đích cung cấp cho người học và nhà nghiên cứu để trao đổi kỹ thuật.
2. Tuyên bố tuân thủ pháp luật
Nhà phát triển Dự án này (sau đây gọi là "Nhà phát triển") long trọng nhắc nhở người dùng tuân thủ nghiêm ngặt các luật và quy định liên quan của Cộng hòa Nhân dân Trung Hoa khi tải xuống, cài đặt và sử dụng Dự án này, bao gồm nhưng không giới hạn ở "Luật An ninh mạng của Cộng hòa Nhân dân Trung Hoa", "Luật Chống gián điệp của Cộng hòa Nhân dân Trung Hoa" và tất cả các luật và chính sách quốc gia hiện hành. Người dùng phải tự chịu mọi trách nhiệm pháp lý có thể phát sinh do việc sử dụng Dự án này.
3. Hạn chế về mục đích sử dụng
Nghiêm cấm sử dụng Dự án này cho bất kỳ mục đích bất hợp pháp nào hoặc các hành vi thương mại không học tập hoặc nghiên cứu. Dự án này không được sử dụng để xâm nhập trái phép vào hệ thống máy tính của người khác dưới bất kỳ hình thức nào và không được sử dụng cho bất kỳ hành vi nào vi phạm quyền sở hữu trí tuệ hoặc các quyền hợp pháp khác của người khác. Người dùng phải đảm bảo rằng mục đích sử dụng Dự án này chỉ là học tập cá nhân và nghiên cứu kỹ thuật, và không được sử dụng cho bất kỳ hình thức hoạt động bất hợp pháp nào.
4. Tuyên bố miễn trừ trách nhiệm
Nhà phát triển đã nỗ lực hết mình để đảm bảo tính hợp pháp và bảo mật của Dự án này, nhưng không chịu trách nhiệm cho bất kỳ hình thức thiệt hại trực tiếp hoặc gián tiếp nào do người dùng sử dụng Dự án này có thể gây ra. Bao gồm nhưng không giới hạn ở bất kỳ mất mát dữ liệu, hư hỏng thiết bị, kiện tụng pháp lý, v.v. do việc sử dụng Dự án này.
5. Tuyên bố về quyền sở hữu trí tuệ
Quyền sở hữu trí tuệ của Dự án này thuộc về Nhà phát triển. Dự án này được bảo vệ bởi luật bản quyền, các hiệp ước bản quyền quốc tế và các luật và hiệp ước khác về quyền sở hữu trí tuệ. Người dùng có thể tải xuống và sử dụng Dự án này khi tuân thủ tuyên bố này và các luật và quy định liên quan.
6. Quyền giải thích cuối cùng
Quyền giải thích cuối cùng về Dự án này thuộc về Nhà phát triển. Nhà phát triển có quyền thay đổi hoặc cập nhật tuyên bố miễn trừ trách nhiệm này bất kỳ lúc nào mà không cần thông báo trước.
Góc nhìn từ cộng đồng
Hãy là người đầu tiên thêm một góc nhìn hữu ích để mạch đọc này trở nên sâu hơn.