NanmiCoder/MediaCrawlerView GitHub Homepage for Latest Official Releases
MediaCrawler 是一個功能強大的多平台自媒體爬蟲工具
NOASSERTIONPythonMediaCrawlerNanmiCoder 35.3k Last Updated: August 06, 2025
MediaCrawler - 多平台自媒體爬蟲工具
項目概述
MediaCrawler 是一個功能強大的多平台自媒體爬蟲工具,由 NanmiCoder 開發維護。該項目基於 Playwright 技術,能夠抓取多個主流社交媒體平台的公開信息,包括內容、評論等數據。
技術架構
核心技術
- Playwright: 作為瀏覽器自動化框架,保留登錄狀態的瀏覽器環境
- Python: 主要開發語言,版本要求 3.9.6+
- JavaScript執行: 通過執行JS表達式獲取加密參數
- Node.js: 版本要求 16+
工作原理
項目採用 Playwright 搭橋的方式,保留登錄成功後的上下文瀏覽器環境,通過執行 JavaScript 表達式獲取一些加密參數。這種方式免去了復現核心加密 JS 代碼的複雜工作,大大降低了逆向工程的難度。
環境要求
系統要求
- Python 3.9.6+
- Node.js 16+
依賴管理
項目新增了 uv
來管理項目依賴,可以使用 uv 來替代傳統的 pip 進行依賴安裝,更加方便快捷。
安裝部署
基礎安裝步驟
# 進入項目根目錄
cd MediaCrawler
# 創建虛擬環境
python -m venv venv
# 激活虛擬環境
# macOS & Linux
source venv/bin/activate
# Windows
venv\Scripts\activate
# 安裝依賴
pip install -r requirements.txt
# 安裝playwright瀏覽器
playwright install
數據庫初始化(可選)
# 執行數據庫初始化(僅首次執行)
python db.py
使用方法
基本命令
# 關鍵詞搜索爬取
python main.py --platform xhs --lt qrcode --type search
# 指定帖子ID爬取
python main.py --platform xhs --lt qrcode --type detail
# 查看幫助信息
python main.py --help
配置說明
- 項目默認不開啟評論爬取模式
- 如需爬取評論,請在
config/base_config.py
中修改ENABLE_GET_COMMENTS
變量 - 其他功能配置也可在
config/base_config.py
中查看,均有中文註釋說明
數據存儲
支持的存儲方式
- MySQL數據庫: 支持關係型數據庫存儲(需提前創建數據庫)
- CSV文件: 保存到
data/
目錄下的CSV格式文件 - JSON文件: 保存到
data/
目錄下的JSON格式文件
Pro版本優勢
項目還提供了 MediaCrawlerPro 版本,相較於開源版本具有以下優勢:
- 多賬號+IP代理支持(重點功能)
- 去除Playwright依賴,使用更加簡單
- 支持Linux環境使用
- 代碼重構優化,更易讀易維護
- 解耦JS簽名邏輯,代碼質量更高
- 完美的架構設計,更易擴展
- 新增自媒體視頻下載器桌面端軟件
- 支持多平台首頁信息流推薦(HomeFeed)
法律聲明
免責聲明
- 本項目僅供學習和研究使用,禁止用於商業用途
- 嚴禁用於非法目的或侵犯他人合法權益
- 使用者需遵守相關法律法規,自行承擔法律責任
- 開發者不承擔因使用本項目而引起的任何法律責任
項目價值
MediaCrawler 不僅僅是一個爬蟲工具,更是一個優秀的學習項目:
- 架構設計學習: 項目架構設計成熟,值得學習借鑒
- 技術實踐: 涵蓋多種技術棧的綜合應用
- 工程化思維: 從代碼組織到部署的完整工程化實踐
- 反爬蟲技術: 學習現代反爬蟲技術的應對方案