限時優惠

MediaCrawler 是什麼?支援多平台公開內容採集的開源工具

部落格 AIWorkflow
2026-08-13 約 8 分鐘閱讀

MediaCrawler 是基於瀏覽器自動化與登入態複用的多平台公開內容採集專案,適合學習與研究型資料管道。本文按照安裝前判斷、首次執行、資料儲存和長期維運的時間軸,整理它能做什麼、不能怎樣使用,以及遠端部署時需要先處理的安全問題。

本文要點

  1. 症狀:你想同時研究多個內容平台,卻不想為每個平台重新設計登入、瀏覽器和資料管道。
  2. 最快解法:先把 MediaCrawler 開源工具當作學習與研究型採集框架使用;在執行前核對專案聲明、授權條款、目標平台規則和所在地法律,不要把它當成可無條件用於商業批量抓取的資料服務。
  3. 本文適合三類讀者:正在學習 Playwright 與多平台採集架構的 Python 開發者、準備建立研究型公開資料管道的資料工程師,以及需要評估瀏覽器自動化環境能否長期運作的技術負責人。若你的目標是繞過驗證、存取受限制內容或擴大未經授權的商業抓取,這篇文章不適合你。
  4. 最後更新於 2026 年 8 月 13 日;平台、依賴、WebUI、儲存方式與專案聲明,已按當日的官方倉庫 README、專案授權條款及相關文件核對。
MediaCrawler 是什麼?支援多平台公開內容採集的開源工具
MediaCrawler 是什麼?支援多平台公開內容採集的開源工具

症狀:你想同時研究多個內容平台,卻不想為每個平台重新設計登入、瀏覽器和資料管道。 最快解法:先把 MediaCrawler 開源工具當作學習與研究型採集框架使用;在執行前核對專案聲明、授權條款、目標平台規則和所在地法律,不要把它當成可無條件用於商業批量抓取的資料服務。

本文適合三類讀者:正在學習 Playwright 與多平台採集架構的 Python 開發者、準備建立研究型公開資料管道的資料工程師,以及需要評估瀏覽器自動化環境能否長期運作的技術負責人。若你的目標是繞過驗證、存取受限制內容或擴大未經授權的商業抓取,這篇文章不適合你。

最後更新於 2026 年 8 月 13 日;平台、依賴、WebUI、儲存方式與專案聲明,已按當日的官方倉庫 README專案授權條款及相關文件核對。

先判斷:MediaCrawler 開源工具適不適合你的任務?

MediaCrawler 的定位不是單純的 HTTP 抓取函式庫,而是把瀏覽器自動化、登入態保存、平台任務類型與資料輸出組合在一起的開源專案。官方 README 說明,它可以處理多個主流內容平台的公開資訊,並以 Playwright 瀏覽器自動化框架建立或複用登入後的瀏覽器上下文。官方專案說明可確認其平台範圍、技術原理和功能矩陣。

但你需要先拆開三個容易混淆的概念:

  • 公開可見不等於可以無限次自動化收集,也不等於可以任意再發布、建立商業資料庫或用於影響第三方。
  • 專案可以執行不等於你的採集目的符合平台條款;平台可能限制自動化存取、帳號共享、資料再利用或特定欄位的保存。
  • 開源不等於完全沒有授權條件。現行授權文件把用途限制在非商業學習,並禁止大規模爬取或干擾平台運作,實際使用前必須閱讀原文而不能只看安裝教學。
你的任務是否適合先用 MediaCrawler開始前的必要動作
學習 Playwright、登入態與任務分層適合使用少量、可公開確認的內容,保留測試範圍
建立校園或研究用途的輿情樣本視情況核對研究倫理、平台規則、資料保留週期
商業客戶的長期批量資料服務不應直接採用先取得正式授權或使用正式介面
繞過驗證、限制或存取控制不適合停止任務,不尋找規避方法
需要穩定 SLA 的正式資料產品不宜只依賴另行設計授權來源、監控和故障替代方案

第一階段:安裝前先確認平台、授權與資料範圍

MediaCrawler 支援哪些內容平台?

截至 2026 年 8 月 13 日,官方 README 的功能表列出小紅書、抖音、快手、B 站、微博、百度貼吧和知乎等平台,並列出關鍵字搜尋、指定內容、二級評論、指定創作者頁面與登入態快取等任務類型。官方功能表

這不代表每個平台的每一種頁面都永久可用。平台前端結構、登入流程和公開欄位都可能變更;因此,正式建立資料管道前,你應該把「平台是否列在 README」和「今天的目標頁面是否仍能按照規則存取」分成兩個驗收項目。

建議你先寫一份採集範圍表,只保留以下欄位:

  1. 平台與內容類型;
  2. 搜尋詞或指定內容識別資訊;
  3. 必要的作者、時間、文字和互動欄位;
  4. 是否需要評論;
  5. 保存期限與刪除方式;
  6. 哪些欄位不得進入日誌、樣本或對外匯出檔案。

使用 MediaCrawler 採集公開內容是否合法? 不能用「公開」兩字直接得到法律結論。合法性通常取決於所在地法律、平台條款、採集方式、資料是否包含個人資訊、使用目的、保存期限及後續分享方式。專案自己的免責聲明只能表達維護者的立場,不能代替法律意見,也不能替你取得平台授權。

第二階段:準備 Python、Node.js 與瀏覽器環境

官方 README 目前建議以 uv 管理 Python 依賴,並要求 Node.js;文件列出的 Node.js 版本要求為 16.0.0 或以上。如果使用標準 Playwright 模式,還要安裝瀏覽器驅動;若使用預設的 CDP 模式連接既有 Chrome,則不需要另外安裝 Playwright 瀏覽器驅動。官方安裝段落

環境選項需要準備的項目適合情境主要風險
CDP 連接既有 ChromeChrome、遠端除錯、Python、Node.js需要複用既有登入態Cookie、除錯入口和本機瀏覽器權限需保護
標準 Playwright 模式Python、Node.js、Playwright 瀏覽器驅動想讓環境較容易重建需要自行管理瀏覽器版本與登入流程
原生虛擬環境Python venv、requirements.txt、Node.js熟悉傳統 Python 部署依賴版本漂移,維護成本較高
遠端伺服器以上任一模式,加上桌面或瀏覽器管理方案長時間研究任務遠端入口、登入態和中斷恢復更複雜

不要直接複製幾年前的安裝指令。README 同時保留 uv sync 和傳統 pip install -r requirements.txt 路線,且文件中的 Python 版本描述帶有作者自身環境背景,不能誤讀成所有部署都必須固定該版本。最穩妥的做法是先鎖定專案提交版本,再建立隔離環境,最後記錄 Python、Node.js、Chrome、Playwright 和作業系統版本。

如果你要在 Mac 上建立獨立瀏覽器任務環境,可先閱讀 kvmboot 的遠端環境與權限說明,確認遠端桌面、權限和任務交接方式,再決定是否把登入瀏覽器放到遠端環境。

第三階段:首次啟動與登入態建立

官方文件目前以 CDP 模式作為推薦路線之一:MediaCrawler 可以連接使用者已有的 Chrome,複用瀏覽器的登入狀態、Cookie 和擴充功能;README 還列出 Chrome 144 或以上的要求,以及遠端除錯就緒時常見的本機端點 127.0.0.1:9222Chrome/CDP 設定說明

你可以按照以下順序建立首次執行流程:

  1. 建立隔離的作業系統使用者或專案目錄,不要直接使用個人日常瀏覽器設定檔。
  2. 安裝 Python、Node.js 和專案依賴,先執行環境檢查,再啟動採集任務。
  3. 選擇 CDP 或標準 Playwright 模式;如果只是學習,先用少量測試任務驗證流程。
  4. 按照專案提供的登入方式完成掃碼或互動登入,確認登入態只存在於指定瀏覽器上下文。
  5. 執行單一平台、單一任務類型和小範圍內容,檢查日誌、輸出欄位和停止行為。
  6. 任務完成後關閉遠端除錯入口,清理臨時檔案,並確認 Cookie 沒有被寫入 Git、共享硬碟或公開日誌。

MediaCrawler 是否需要掃碼登入? 這取決於平台、任務和所選登入方式。官方範例使用 --lt qrcode,並要求在對應應用程式中掃描 QR Code;但 CDP 模式也可能複用已有 Chrome 的登入態,因此不是所有情境都必然在每次啟動時重新掃碼。官方快速開始範例

Cookie、帳號和遠端除錯連接埠都應視為敏感資產。尤其不要把 9222 這類管理入口直接暴露到公網,也不要讓多人共用同一個已登入瀏覽器設定檔;這既增加帳號風險,也會讓你難以追查是哪一個任務造成異常。

第四階段:配置任務時,先做最小化採集

MediaCrawler 提供的任務大致可分為關鍵字搜尋、指定內容和指定創作者頁面。你應該按照研究問題選最窄的模式,而不是一開始就開啟所有評論、作者頁面和延伸欄位。

例如,若你只想觀察某個公開議題的文字變化,先使用關鍵字與必要欄位即可;若你已經有明確的內容識別資訊,指定內容通常比泛化搜尋更容易控制範圍。評論採集、二級回覆和作者頁面會擴大資料量與個人資訊暴露面,應在研究問題確實需要時才啟用。

不要把以下行為列入部署方案:

  • 繞過驗證碼、登入限制、存取控制或平台風控;
  • 透過不明來源的帳號池、Cookie 池擴大採集;
  • 用代理或遠端除錯功能掩飾未授權的批量請求;
  • 將個人帳號登入態交給不受控的第三方;
  • 把公開內容重新包裝成可識別個人的商業名單。

遇到驗證失敗、IP 異常、頁面結構改變或資料欄位突然減少時,正確處理是停止、記錄和重新核對規則,而不是繼續增加請求頻率。

第五階段:選擇資料格式、預覽並建立清理規則

MediaCrawler 可以保存哪些資料格式? 官方資料保存說明列出 CSV、JSON、JSONL、Excel、SQLite 和 MySQL 等選項。官方儲存說明實際選擇時,不要只看「格式多不多」,而要看下游用途:

  • CSV 適合人工檢查和簡單交換,但欄位型別與巢狀內容處理較弱;
  • JSON、JSONL 適合保留原始結構和逐筆追加,方便後續資料管道處理;
  • Excel 適合少量人工檢視,不宜當作長期主資料庫;
  • SQLite 適合單機研究與可攜式樣本;
  • MySQL 適合已有權限、備份、監控和多人查詢制度的團隊。

MediaCrawler 也提供 WebUI,可用來配置平台、登入方式和採集類型,查看運行狀態與日誌,並預覽及匯出資料。官方開發模式使用 API 伺服器和前端 Vite 開發伺服器,文件列出的常見連接埠為 80805173;這些是環境設定值,不應直接暴露到公網。WebUI 說明

你至少要建立四項資料治理規則:

  1. 欄位最小化:不採集與研究問題無關的個人資料。
  2. 權限分離:瀏覽器登入態、原始資料和分析結果分開保存。
  3. 刪除週期:在任務開始前寫明何時刪除原始資料、日誌和備份。
  4. 日誌脫敏:不要把 Cookie、完整請求標頭、帳號識別資訊或個人內容寫進錯誤日誌。

第六階段:遠端伺服器能否長期運行?

MediaCrawler 能否部署在遠端伺服器? 技術上可以評估,但「能啟動」和「適合長期部署」是兩件事。CDP 模式需要可互動的 Chrome 和安全的遠端管理方式;標準 Playwright 模式則要處理瀏覽器驅動、登入態、顯示環境、檔案權限和中斷恢復。官方 README 提供本機 WebUI 和 API 啟動方式,但沒有替你完成公網安全、帳號隔離或正式營運級監控。

遠端部署前,至少驗收以下項目:

  • 瀏覽器進程停止後,任務是否能安全退出,而不是無限重試;
  • 網路短暫中斷時,是否會重複寫入或遺失已完成資料;
  • 登入態是否只由單一受控使用者持有;
  • WebUI、API 和瀏覽器除錯入口是否只允許管理網路存取;
  • 任務日誌是否能區分登入失效、平台拒絕、程式例外和網路錯誤;
  • 硬碟空間、記憶體、瀏覽器進程數量和資料庫備份是否有人負責。

如果你的工作是短期研究、需要一個隔離的瀏覽器環境,租用 Mac 可以減少本機配置、登入態污染和任務完成後的清理負擔;但你仍然要自行負責平台規則、資料治理和帳號安全。你可以先了解遠端 Mac 環境的隔離方式,再判斷它是否符合你的瀏覽器自動化工作方式;如需核對連線權限、遠端桌面和帳號交接設定,可參考遠端工作環境的安全管理指引

什麼情況下應立即停止採集?

把停止條件寫入任務文件,比事後解釋更重要。出現以下任一情況,就應暫停任務並重新審查:

  • 帳號出現異常登入、驗證要求或其他安全警示;
  • 目標平台更新條款,限制自動化、資料再利用或特定類型存取;
  • 專案 README、LICENSE 或免責聲明發生變更;
  • 研究用途擴大成客戶交付、廣告投放、商業名單或公開資料產品;
  • 原本的公開欄位改成需要登入、權限或特殊互動才能看到;
  • 團隊無法確認資料保存位置、存取人員和刪除日期。

此時的回退方案不是尋找新的規避技巧,而是縮小採集範圍、改用正式介面、取得明確授權,或停止使用該平台。若需要重新規劃遠端瀏覽器的帳號隔離、連線權限和任務週期,應先完成環境安全評估,再安排部署。

對研究型開發者而言,MediaCrawler 的價值在於它把 Playwright、瀏覽器上下文、登入態複用、平台任務和多種資料輸出放在同一個可觀察的專案裡;對正式商業資料管道而言,它的限制同樣清楚:授權用途受限、平台變更會影響穩定性、登入態需要高強度保護,且專案本身不會替你完成法律與資料治理責任。

如果你目前使用的是個人電腦或臨時雲端主機,常見缺點是瀏覽器設定與日常帳號混在一起、遠端桌面權限難以分離、任務中斷後缺少可重建環境,而且資料清理容易被忽略。當你的用途已確認合法、範圍也控制在研究或測試需要內,使用 kvmboot 的 Mac 環境會更容易把瀏覽器任務、登入態和工作檔案隔離;但若你要長期高負載執行、需要實體裝置介面,或必須由團隊建立正式合規資料服務,直接自建受控環境通常比租用更合適。

接下來,先把採集流程做穩

先確認目標平台的使用條款、資料權限與個人資料處理界線,只採集你有權使用的公開內容。

查看方案 · 首頁

雲端執行公開內容採集工具:容器架構、掛載與快取排障 · 長期運行採集工作:磁碟、日誌與快取容量治理