開源信息採集工具 MediaCrawler:一套命令獲取小紅書、抖音、B站等 7 個平台

作者:沉浸式AI
日期:2026年8月4日 上午9:17
來源:WeChat 原文

整理版優先睇

速讀 5 個重點 高亮

MediaCrawler 用一套命令就可以採集小紅書、抖音等7個平台嘅公開數據,但一定要遵守合規邊界

整理版摘要

呢篇文章係由 Immerse(一個專注AI玩法、獨立開發同AI出海嘅分享者)寫嘅,主要介紹一個叫 MediaCrawler 嘅開源信息採集工具。作者想解決嘅問題係:好多時要攞小紅書、抖音、快手、B站、微博、貼吧同知乎呢啲平台嘅公開數據,但逐個平台寫爬蟲好麻煩,而且登錄狀態同請求參數處理好易卡。MediaCrawler 將呢啲嘢整合埋一齊,支援關鍵詞搜索、指定內容、評論同埋作者主頁等模式,數據可以存做 CSV、JSON、SQLite、MySQL 等格式。

文章嘅核心內容係用 uv 加 Chrome CDP 跑通一個最小嘅小紅書關鍵詞採集流程。作者強調要先準備好 Node.jsChrome 同 uv,再用 `uv sync` 安裝依賴,設定 `base_config.py`,最後用 `uv run main.py --platform xhs --lt qrcode --type search` 嚟運行。成個流程最需要注意嘅位包括:CDP 模式要開 Chrome 嘅遠程調試、運行時要喺60秒內接受確認對話框、仲有登錄二維碼要用手機掃。如果已經有明確嘅帖子 ID,可以用 `--type detail` 嚟採集指定內容;想用界面管理參數,就可以啟動 WebUI。

最後作者提醒,任何採集都要保留項目原本嘅邊界:所有內容只可以用嚟學習同研究,禁止商業用途、大規模採集、非法使用或者侵犯他人合法權益。實際操作仲要遵守目標平台規則、…

  • 結論MediaCrawler 整合咗小紅書、抖音、快手、B站、微博、貼吧同知乎嘅公開數據採集,用一個項目就可以統一處理。
  • 方法:最小流程係用 uv 加 Chrome CDP 模式,設定好 config/base_config.py 之後,執行 `uv run main.py --platform xhs --lt qrcode --type search` 掃碼登錄就得。
  • 差異:支援關鍵詞搜索、指定內容、評論同二級評論、創作者主頁,數據格式豐富,仲可以用 WebUI 管理參數。
  • 啟發:用 Playwright 管理登錄態,保留登錄狀態攞請求參數,大大減少咗登錄驗證嘅麻煩。
  • 可行動點:第一步一定要先確認 Chrome 遠程調試開咗,登錄後要睇數據有冇寫入,再用少量授權數據驗證,先好擴大採集。
值得記低
工具 github.com

MediaCrawler

開源信息採集工具,整合小紅書、抖音、快手、B站、微博、貼吧同知乎,支援多種數據格式同埋 WebUI。

整理重點

呢個項目係咩?

呢篇文章出自 Immerse,佢成日分享 AI 玩法、獨立開發同 AI 出海嘅嘢。今次要講嘅 MediaCrawler,係一個整合咗小紅書、抖音、快手、B 站、微博、貼吧同知乎嘅開源信息採集項目。

小紅書、抖音、快手、B 站、微博、貼吧同知乎

佢支援關鍵詞搜索、指定內容、評論同二級評論、創作者主頁等模式,數據可以保存做 CSVJSONJSONLExcel、SQLite 或 MySQL。底層用 Playwright 管理瀏覽器登錄態,喺保留登錄狀態嘅環境中攞請求參數,所以唔使每次重新登錄。

Playwright 管理瀏覽器登錄態

不過要注意,呢個項目嘅原意係畀人學習同研究用,唔可以用嚟做商業用途、大規模採集或者侵犯他人權益。

整理重點

先準備好環境同安裝

開始之前,你要準備好三樣嘢Node.js 16 或更高版本、最新版 Chrome 144 或更高版本,同埋 uv。用下面兩條命令檢查環境:

程式內容 bash
uv --version
node --version

CDP 模式

默認嘅 CDP 模式會連接電腦上已有嘅 Chrome,唔需要額外安裝 Playwright 瀏覽器驅動。但你要喺 Chrome 地址欄打開 chrome://inspect/#remote-debugging,勾選 Allow remote debugging for this browser instance。見到 Server running at: 127.0.0.1:9222 先至代表就緒。

Server running at: 127.0.0.1:9222

跟住下載項目同安裝依賴

程式內容 bash
git clone https://github.com/NanmiCoder/MediaCrawler.git
cd MediaCrawler
uv sync

uv sync 會自動同步 Python 版本同依賴。如果結束時冇報錯,就可以繼續。想用標準 Playwright 模式,就要喺 config/base_config.py 度改 ENABLE_CDP_MODE = False,再行 uv run playwright install。

ENABLE_CDP_MODE = False

整理重點

用 WebUI 管理參數

唔想成日改配置文件,可以同時啟動 API 同前端開發服務器,用 WebUI 嚟管理參數。

程式內容 bash
# 終端 1
uv run uvicorn api.main:app --port 8080 --reload

# 終端 2
cd webui
npm install
npm run dev

之後瀏覽器訪問 http://localhost:5173/,就可以可視化設置平台、登錄方式同採集類型,仲可以睇運行狀態、日誌、數據預覽同導出。

http://localhost:5173/

頁面首次打開會檢測環境。如果檢測失敗,先確認 8080 端口嘅 API 服務係咪運行緊;「跳過檢測」只係臨時入到界面,唔會修復後端缺失。

想令 API 服務直接提供 WebUI 靜態資源,就要先構建前端:

程式內容 bash
cd webui
npm install
npm run build
cd ..
uv run uvicorn api.main:app --port 8080 --reload

http://localhost:8080

構建完之後,訪問 http://localhost:8080 就會直接出 WebUI

整理重點

常見問題同合規提醒

好多時卡住都係環境問題。CDP 模式連唔到,就檢查 Chrome 版本、遠程調試開關同 127.0.0.1:9222,仲要留意 Chrome 彈出嘅確認對話框要喺 60 秒內接受。

127.0.0.1:9222

如果用標準 Playwright 模式報瀏覽器缺失,執行 uv run playwright install 就搞掂。呢條命令喺默認 CDP 模式下唔使做。

uv run playwright install

原生 venv 方案要自己搞 Python 同 requirements.txt,作者唔建議用。冇特殊原因就優先 uv sync。

採集結果係空嘅話,要順序檢查登錄狀態、關鍵詞或 ID 配置、平台參數、評論開關同保存方式。任何模式都應該先用少量授權數據驗證,確認輸出結構冇問題,再決定係咪擴大範圍。

大家好,我係 Immerse

主力分享 AI 玩法獨立開發AI 出海嘅 AGI 實踐者,想睇更多乾貨,歡迎關注公眾號 #沉浸式AI 或訪問 yaolifeng.com


MediaCrawler 將小紅書、抖音、快手、B 站、微博、貼吧同知乎嘅公開資訊收集放埋喺同一個項目。佢支援關鍵詞搜索、指定內容、評論同二級評論、創作者主頁等模式,啲資料可以儲存做 CSV、JSON、JSONL、Excel、SQLite 或 MySQL。

個項目基於 Playwright 管理瀏覽器登入狀態,並喺保留登入狀態嘅瀏覽器環境入面攞請求所需嘅參數。下面會用 uv 同 Chrome CDP 跑通一個最小嘅小紅書關鍵詞採集流程,再補充詳情模式、WebUI 同常見問題。

開始之前要守住項目原本嘅邊界:所有內容只用嚟學習同研究,禁止商業用途、大規模採集、非法使用或者侵犯他人合法權益。

實際操作仲要遵守目標平台規則、適用法律同資料授權範圍。

項目地址:NanmiCoder/MediaCrawler

準備運行環境

素材而家指定嘅要求係 Node.js 16 或更高版本、最新版 Chrome 144 或更高版本,仲有 uv。安裝完成之後,用下面兩條命令檢查環境:

uv --version
node --version

兩條命令都應該輸出版本號。預設嘅 CDP 模式會連接電腦上已經有嘅 Chrome,唔使額外安裝 Playwright 瀏覽器驅動。

喺 Chrome 地址欄打開 chrome://inspect/#remote-debugging,勾選 Allow remote debugging for this browser instance頁面出現下面呢行內容,就代表遠端調試已經準備好:

Server running at: 127.0.0.1:9222

執行採集程式之後,Chrome 可能會彈出確認對話框,需要喺 60 秒內撳「接受」。

睇唔到 127.0.0.1:9222 嘅時候,唔好急住執行主程式,先處理好遠端調試狀態。

安裝項目依賴

將個倉庫下載到本地之後,喺終端機執行:

git clone https://github.com/NanmiCoder/MediaCrawler.git
cd MediaCrawler
uv sync

uv sync 佢會按照項目配置同步 Python 版本同依賴。如果命令正常結束、冇依賴解析錯誤,就可以進入配置步驟。

想改用標準 Playwright 模式,可以喺 config/base_config.py 入面設置:

ENABLE_CDP_MODE = False

呢種模式仲要安裝瀏覽器驅動:

uv run playwright install

跑通關鍵詞採集

打開 config/base_config.py,按照文件裏面嘅中文註釋設置關鍵詞、資料儲存方式同採集範圍。建議只填少量、有明確授權嘅測試內容,唔好一開始就擴大數量。

儲存配置之後執行:

uv run main.py --platform xhs --lt qrcode --type search

xhs 代表小紅書,qrcode 代表用二維碼登入,search 代表由配置文件讀取關鍵詞並採集匹配嘅內容。程式顯示二維碼之後,用對應嘅 App 掃碼完成登入。

登入成功之後,終端機就會繼續輸出執行日誌。要確認冇登入或者依賴錯誤,並且喺配置嘅資料儲存目標入面睇到內容同評論記錄,先算係最小流程跑通;如果只係睇到程式啟動,唔算完成驗證。

改做指定內容採集

已經有明確嘅帖子 ID 時,喺 config/base_config.py 填寫對應列表,將命令尾端改做 detail

uv run main.py --platform xhs --lt qrcode --type detail

項目預設冇開啟評論採集。如果確實需要評論,而且有合法授權,就將配置項改做:

ENABLE_GET_COMMENTS = True

其他平台嘅參數以程式說明為準:

uv run main.py --help

唔好照搬小紅書參數去估其他平台。應該先由幫助資訊確認平台標識、登入方式同採集類型,再進行小範圍驗證。

用 WebUI 管理參數

如果唔想成日改配置文件,可以同時啟動 API 同前端開發伺服器:

# 終端 1
uv run uvicorn api.main:app --port 8080 --reload

# 終端 2
cd webui
npm install
npm run dev

瀏覽器訪問 http://localhost:5173/,就可以用可視化方式設置平台、登入方式同採集類型,仲可以查看執行狀態、日誌、資料預覽同匯出。

MediaCrawler WebUI 界面
MediaCrawler WebUI 介面

頁面首次打開會呼叫 /api/env/check 偵測環境。如果偵測失敗,要先確認 8080 埠嘅 API 服務正在執行;「跳過偵測」只可以暫時入到介面,唔可以修復缺失嘅後端或者依賴。

想令 API 服務直接提供 WebUI 靜態資源,就要構建前端:

cd webui
npm install
npm run build
cd ..
uv run uvicorn api.main:app --port 8080 --reload

構建嘅結果會寫入 api/webui/,服務啟動之後訪問 http://localhost:8080

幾個容易卡住嘅地方

CDP 模式連接失敗嘅時候,要檢查 Chrome 版本、遠端調試開關同 127.0.0.1:9222,仲要留意執行之後出現嘅確認對話框。

標準 Playwright 模式如果話瀏覽器缺失,就執行 uv run playwright install。呢條命令喺預設 CDP 模式之下唔係必需步驟。

原生 venv 方案依賴 Python 同 requirements.txt 嘅兼容性,素材用咗 Python 3.11,而且明確將嗰個方案標示為唔推薦。冇特別原因嘅時候,優先使用 uv sync

採集結果係空嘅時候,要按登入狀態、關鍵詞或 ID 配置、平台參數、評論開關同儲存方式逐項檢查。任何模式都應該先用少量有授權嘅資料驗證,確認輸出結構符合預期,先再決定係咪繼續。

大家好,我是 Immerse

專注分享 AI 玩法獨立開發AI 出海的 AGI 實踐者,更多幹貨歡迎關注公眾號 #沉浸式AI 或訪問 yaolifeng.com


MediaCrawler 把小紅書、抖音、快手、B 站、微博、貼吧和知乎的公開信息採集放進了同一個項目。它支持關鍵詞搜索、指定內容、評論與二級評論、創作者主頁等模式,數據可以保存為 CSV、JSON、JSONL、Excel、SQLite 或 MySQL。

項目基於 Playwright 管理瀏覽器登錄態,並在保留登錄狀態的瀏覽器環境中獲取請求需要的參數。下面用 uv 和 Chrome CDP 跑通一個最小的小紅書關鍵詞采集流程,再補充詳情模式、WebUI 和常見問題。

開始前要保留項目原本的邊界:所有內容只用於學習和研究,禁止商業用途、大規模採集、非法使用或侵犯他人合法權益。

實際操作還要遵守目標平台規則、適用法律和數據授權範圍。

項目地址:NanmiCoder/MediaCrawler

準備運行環境

素材當前給出的要求是 Node.js 16 或更高版本、最新版 Chrome 144 或更高版本,以及 uv。安裝完成後,用下面兩條命令檢查環境:

uv --version
node --version

兩條命令都應該輸出版本號。默認的 CDP 模式會連接電腦上已有的 Chrome,不需要額外安裝 Playwright 瀏覽器驅動。

在 Chrome 地址欄打開 chrome://inspect/#remote-debugging,勾選 Allow remote debugging for this browser instance。頁面出現下面這行內容,說明遠程調試已經就緒:

Server running at: 127.0.0.1:9222

運行採集程序後,Chrome 可能彈出確認對話框,需要在 60 秒內點擊接受。

沒有看到 127.0.0.1:9222 時,不要急着運行主程序,先把遠程調試狀態處理好。

安裝項目依賴

把倉庫下載到本地後,在終端執行:

git clone https://github.com/NanmiCoder/MediaCrawler.git
cd MediaCrawler
uv sync

uv sync 會按照項目配置同步 Python 版本與依賴。命令正常結束、沒有依賴解析錯誤,就可以進入配置步驟。

想改用標準 Playwright 模式,可以在 config/base_config.py 中設置:

ENABLE_CDP_MODE = False

這種模式還要安裝瀏覽器驅動:

uv run playwright install

跑通關鍵詞采集

打開 config/base_config.py,按照文件裏的中文註釋設置關鍵詞、數據保存方式和採集範圍。建議只填少量、明確授權的測試內容,不要一開始就擴大數量。

保存配置後執行:

uv run main.py --platform xhs --lt qrcode --type search

xhs 表示小紅書,qrcode 表示二維碼登錄,search 表示從配置文件讀取關鍵詞並採集匹配內容。程序顯示二維碼後,用對應 App 掃碼完成登錄。

登錄成功後,終端會繼續輸出運行日誌。確認沒有登錄或依賴錯誤,並在配置的數據保存目標中看到內容與評論記錄,才算最小流程跑通;只看到程序啓動不算完成驗證。

改成指定內容採集

已經有明確的帖子 ID 時,在 config/base_config.py 填寫對應列表,把命令末尾改為 detail

uv run main.py --platform xhs --lt qrcode --type detail

項目默認沒有開啓評論採集。確實需要評論並且具備合法授權時,把配置項改為:

ENABLE_GET_COMMENTS = True

其他平台的參數以程序幫助為準:

uv run main.py --help

不要照搬小紅書參數去猜其他平台。先從幫助信息確認平台標識、登錄方式和採集類型,再做小範圍驗證。

用 WebUI 管理參數

不想一直改配置文件,可以同時啓動 API 和前端開發服務器:

# 終端 1
uv run uvicorn api.main:app --port 8080 --reload

# 終端 2
cd webui
npm install
npm run dev

瀏覽器訪問 http://localhost:5173/,可以可視化設置平台、登錄方式和採集類型,並查看運行狀態、日誌、數據預覽與導出。

MediaCrawler WebUI 界面
MediaCrawler WebUI 界面

頁面首次打開會調用 /api/env/check 檢測環境。檢測失敗時,先確認 8080 端口的 API 服務正在運行;“跳過檢測”只能臨時進入界面,不能修復缺失的後端或依賴。

想讓 API 服務直接提供 WebUI 靜態資源,需要構建前端:

cd webui
npm install
npm run build
cd ..
uv run uvicorn api.main:app --port 8080 --reload

構建產物會寫入 api/webui/,服務啓動後訪問 http://localhost:8080

幾個容易卡住的地方

CDP 模式連接失敗時,檢查 Chrome 版本、遠程調試開關和 127.0.0.1:9222,也要留意運行後出現的確認對話框。

標準 Playwright 模式報瀏覽器缺失時,執行 uv run playwright install。這條命令在默認 CDP 模式下不是必需步驟。

原生 venv 方案依賴 Python 與 requirements.txt 的兼容性,素材使用 Python 3.11,並明確把該方案標為不推薦。沒有特殊原因時,優先使用 uv sync

採集結果為空時,按登錄狀態、關鍵詞或 ID 配置、平台參數、評論開關和保存方式逐項檢查。任何模式都應先用少量授權數據驗證,確認輸出結構符合預期,再決定是否繼續。