開源信息採集工具 MediaCrawler:一套命令獲取小紅書、抖音、B站等 7 個平台
整理版優先睇
MediaCrawler 用一套命令就可以採集小紅書、抖音等7個平台嘅公開數據,但一定要遵守合規邊界
呢篇文章係由 Immerse(一個專注AI玩法、獨立開發同AI出海嘅分享者)寫嘅,主要介紹一個叫 MediaCrawler 嘅開源信息採集工具。作者想解決嘅問題係:好多時要攞小紅書、抖音、快手、B站、微博、貼吧同知乎呢啲平台嘅公開數據,但逐個平台寫爬蟲好麻煩,而且登錄狀態同請求參數處理好易卡。MediaCrawler 將呢啲嘢整合埋一齊,支援關鍵詞搜索、指定內容、評論同埋作者主頁等模式,數據可以存做 CSV、JSON、SQLite、MySQL 等格式。
文章嘅核心內容係用 uv 加 Chrome CDP 跑通一個最小嘅小紅書關鍵詞採集流程。作者強調要先準備好 Node.js、Chrome 同 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 遠程調試開咗,登錄後要睇數據有冇寫入,再用少量授權數據驗證,先好擴大採集。
MediaCrawler
開源信息採集工具,整合小紅書、抖音、快手、B站、微博、貼吧同知乎,支援多種數據格式同埋 WebUI。
呢個項目係咩?
呢篇文章出自 Immerse,佢成日分享 AI 玩法、獨立開發同 AI 出海嘅嘢。今次要講嘅 MediaCrawler,係一個整合咗小紅書、抖音、快手、B 站、微博、貼吧同知乎嘅開源信息採集項目。
小紅書、抖音、快手、B 站、微博、貼吧同知乎
佢支援關鍵詞搜索、指定內容、評論同二級評論、創作者主頁等模式,數據可以保存做 CSV、JSON、JSONL、Excel、SQLite 或 MySQL。底層用 Playwright 管理瀏覽器登錄態,喺保留登錄狀態嘅環境中攞請求參數,所以唔使每次重新登錄。
Playwright 管理瀏覽器登錄態
不過要注意,呢個項目嘅原意係畀人學習同研究用,唔可以用嚟做商業用途、大規模採集或者侵犯他人權益。
先準備好環境同安裝
開始之前,你要準備好三樣嘢:Node.js 16 或更高版本、最新版 Chrome 144 或更高版本,同埋 uv。用下面兩條命令檢查環境:
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
跟住下載項目同安裝依賴:
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
跑通關鍵詞採集流程
跑關鍵詞採集,第一步係打開 config/base_config.py,按註釋填關鍵詞、數據保存方式同採集範圍。建議由少量、明確授權嘅測試內容開始,唔好一開頭就擴到好大。
config/base_config.py
保存配置之後,就執行呢條命令:
uv run main.py --platform xhs --lt qrcode --type search
xhs 代表小紅書,qrcode 代表二維碼登錄,search 代表按配置嘅關鍵詞搜。程序會顯示二維碼,你用對應 App 掃碼登錄。登錄成功之後,終端會繼續出 log。最緊要係確認數據庫或 CSV 入面真係有內容同評論記錄,先算係跑通。
uv run main.py --platform xhs --lt qrcode --type search
如果已經有明確嘅帖子 ID,想採集指定內容,改為 --type detail 就得:
uv run main.py --platform xhs --lt qrcode --type detail
另外,項目默認冇開評論採集。你有合法授權而又真係要評論,就喺配置度改 ENABLE_GET_COMMENTS = True。其他平台嘅參數千祈唔好照搬,先睇 uv run main.py --help 確認平台標識、登錄方式同採集類型。
ENABLE_GET_COMMENTS = True
uv run main.py --help
用 WebUI 管理參數
唔想成日改配置文件,可以同時啟動 API 同前端開發服務器,用 WebUI 嚟管理參數。
# 終端 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 靜態資源,就要先構建前端:
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/,就可以用可視化方式設置平台、登入方式同採集類型,仲可以查看執行狀態、日誌、資料預覽同匯出。

頁面首次打開會呼叫 /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/,可以可視化設置平台、登錄方式和採集類型,並查看運行狀態、日誌、數據預覽與導出。

頁面首次打開會調用 /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 配置、平台參數、評論開關和保存方式逐項檢查。任何模式都應先用少量授權數據驗證,確認輸出結構符合預期,再決定是否繼續。