Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124

ai-goofish-monitor 是 GitHub 上 13.8K 星的開源 Python 專案,整合 Playwright 爬蟲與視覺模型,自動監控閒魚商品並透過 Webhook 推播。了解它的 Docker 部署流程、BYOK AI 資料流向、閒魚帳號登入態風險與台灣讀者的適用性。
用 AI 摘要這篇文章:
一個在 GitHub 拿下 13.8K 星的開源 Python 專案,把 Playwright 爬蟲、視覺模型與 Docker 部署綁在一起,專門幫你盯著閒魚上的二手商品;它最大的賣點是把商品縮圖交給 AI 視覺模型判讀,跳過傳統關鍵字匹配的盲點,但同時也把帳號風險、雲端 AI 費用與跨境使用邊界一起放進你的部署清單。
作者把安裝過程收斂成 git clone → cp .env → docker compose up 的最小步驟,這也是 ai-goofish-monitor 在 README 強調的路徑。先從 Docker 路徑看起,再回頭拆解它背後做了什麼:
git clone https://github.com/Usagi-org/ai-goofish-monitor
cd ai-goofish-monitor
cp .env.example .env
# 編輯 .env 填入 OPENAI_API_KEY、OPENAI_BASE_URL、OPENAI_MODEL_NAME
docker compose up -d
容器啟動後,瀏覽器打開 http://127.0.0.1:8000,預設帳號 admin、預設密碼 admin123。映像檔本身已經把 Chromium 包進去,宿主機不需要再裝瀏覽器;資料庫檔落在主機的 ./data/app.sqlite3,登入態、提示詞、日誌與商品圖快取則各自落在 state/、prompts/、logs/、images/ 幾個掛載目錄。
這套部署邏輯從 README 直接複製即可運作,但它把幾個需要讀者自己接手的決策一起埋進 .env:要選哪個 OpenAI 相容的視覺模型、要走哪個代理、要不要把預設密碼改掉、要不要在前面掛一層 HTTPS 反向代理。這些項目都會在後面章節展開。
映像檔預設從 ghcr.io/usagi-org/ai-goofish:latest 拉取;如果拉不下來,README 提供了南京大學的鏡像 ghcr.nju.edu.cn/usagi-org/ai-goofish:latest 作為加速 fallback,再手動 retag 成官方路徑。資料預設落在四個 volume:data/(SQLite 任務與結果)、state/(閒魚登入態 cookie)、prompts/(AI 提示詞)、logs/(運行日誌),另外還有 images/ 暫存商品圖、config.json 與 jsonl/、price_history/ 則是從舊版本升級時用的相容入口。這套儲存設計意味著只要你備份 data/ 與 state/,整個監控設定與帳號狀態就可以搬機重建。
升級流程也圍繞著 Docker:docker compose pull && docker compose up -d 會抓新映像、重建容器,SQLite schema 在啟動時自動 migrate。不過封存之後,這條升級路徑不會再有新映像可拉,已發布的最後一版映像仍可取用,但不再更新。
ai-goofish-monitor 的全名已經點出它的核心:用 Playwright 開瀏覽器、用視覺模型看商品圖、把整個流程包成 Web 介面。把它拆成三層會更清楚:
| 層級 | 負責的事 | 技術 |
|---|---|---|
| 抓取層 | 用登入態模擬使用者逛閒魚,下載商品頁與縮圖 | Playwright + Chromium |
| 判讀層 | 把商品標題、價格、描述與縮圖整包送給視覺模型判斷 | OpenAI 相容 API(BYOK) |
| 調度層 | 省市區篩選、Cron 排程、帳號與代理輪換、多頻道通知 | FastAPI + SQLite + APScheduler |
從 requirements.txt 看,它依賴的核心函式庫有 playwright、openai、fastapi、uvicorn、apscheduler(Cron 排程)、httpx[socks](HTTP/SOCKS5 代理)、Pillow(圖片處理)、pyzbar(QR 解碼)與 qrcode(QR 產生)。從這套依賴可以推回它的功能邊界:HTTP/socks 代理支援、圖片下載與基本處理、QR 掃讀(可能用於登入流程)、Python 排程器,再加上一層 OpenAI 官方 SDK 帶來的 BYOK 視覺模型呼叫。
支援的通知頻道涵蓋 ntfy.sh、企業微信、Bark、Telegram、Gotify 與 generic Webhook;排程器支援 Cron 規則,可以設成每十分鐘掃一次特定關鍵字。Web UI 在 README 提供的四張截圖分別展示監控概覽、任務管理、結果查看與通知推送四個主畫面;另外從功能說明文件看,還有運行日誌、系統設置、AI 標準編輯與閒魚帳號管理幾個輔助頁面。


任務建立支援兩種模式。「AI 判斷」模式讓你用自然語言描述需求,系統先把需求交給視覺模型生成判讀標準,再建立任務,這條流程走背景 job,提交後會跑出獨立的進度彈窗。「關鍵詞判斷」模式跳過 AI 標準生成,直接用關鍵字規則建立任務。兩種模式都可以疊加價格區間、新發布時間範圍、省/市/區三級區域篩選與帳號綁定。

作者還提供了一個 Chrome 擴充功能,用來匯出閒魚的登入態 JSON。匯出後的檔案會落在 state/acc_1.json 之類的位置,爬蟲啟動時直接讀進來用。每個任務可以指定綁定哪個帳號,也可以不綁定交給系統自動選。
ai-goofish-monitor 的差異化賣點是「會看圖」。對應的實作邏輯是:抓到商品後,把標題、價格、描述與縮圖整包送到使用者設定的 OpenAI 相容端點,由視覺模型回出「推薦或不推薦」的判斷,再依判斷結果發通知或寫資料庫。
這條鏈路是 BYOK(Bring Your Own Key)架構。.env.example 的預設值給了一組值得停下來看一下的組合:
OPENAI_BASE_URL=https://api-inference.modelscope.cn/v1/
OPENAI_MODEL_NAME=XiaomiMiMo/MiMo-V2-Flash
預設端點指向阿里的 ModelScope,模型是小米的 MiMo-V2-Flash。換句話說,如果你照預設值部署,每一張被抓到的商品縮圖都會被送到位於中國大陸的推論端點。對台灣讀者來說,這有兩層含義值得拆開看。
「會看圖」不等於「圖留在本機」。視覺模型推理發生在你設定的雲端,不是你部署 Docker 的那台機器。要讓圖真的不出本機,得自己接本地推論方案(例如 Ollama 上的視覺模型)當 OpenAI 相容端點。
BYOK 給你選擇權,也把責任交給你。要換成 OpenAI、Anthropic、Azure、Cloudflare AI、自架 vLLM,都只要改 .env 三個變數;相對地,AI 帳單、資料流向與合規考量也全部回到你身上。
上述流程來自 README、.env.example 與 docker-compose 的設計描述,按工具的設計行為整理,未必反映每一種部署組合的實測結果。
要把爬蟲跑起來,必須先把閒魚的登入態餵進系統。作者透過 Chrome 擴充功能把 cookie 匯出成 JSON,再貼進 Web UI。這些 cookie 檔案落地在本機的 state/ 目錄,爬蟲以你的登入狀態模擬使用者瀏覽行為。
這個設計帶來幾個必須明說的後果。
帳號風險由使用者扛。閒魚的服務條款對自動化抓取有一定限制,頻率太高、行為太機械化,都可能觸發風控、暫時限制,甚至帳號被停權。工具本身的 PROXY_ROTATION_ENABLED 與 TASK_FAILURE_GUARD 是降低風險的機制,但不能消除風險。
cookie 過期是使用者自己的事。閒魚改版、cookie 過期、裝置驗證觸發,都會讓任務失敗;日誌頁會把這些事件記下來,但你需要自己重新匯出登入態。這不是那種「設定一次就永遠跑」的服務。
作者的 DISCLAIMER.md 明確把這層責任寫進去:本專案僅供學習與研究目的,使用者必須遵守所在司法管轄區的法律,對使用行為自負全部責任,作者不對任何直接或間接損害負責。這份宣告實質把界線畫清楚,是部署前該先讀完的一份文件。
把流程展開成「部署→第一次任務→收到通知」之後,幾個文件會提醒、但容易被略過的點值得記下來。
預設密碼要馬上改。WEB_USERNAME=admin、WEB_PASSWORD=admin123 是出廠值,如果部署在雲端 VPS 或 NAS 上卻沒改密碼,等於把監控後台開放給任何掃到這個 port 的人。改密碼之外,更穩的做法是把它放在反向代理後面,加上 HTTPS 與存取控制。
預設沒有 HTTPS。FastAPI 預設綁 8000 plain HTTP,沒有 TLS。如果你要從外部網路連回來,自行加上 Caddy、Traefik 或 Nginx 反向代理是必要的,否則登入態會以明文在網路上跑。
AI 帳單會疊得很快。每一次商品判讀都會叫一次視覺模型 API;如果你設了多個任務、Cron 環又設得太密,token 用量會疊得很快。建議第一次先用小範圍關鍵字試水溫,再決定排程頻率。
區域篩選會吃掉結果集。README 明確提醒:區域篩選會顯著縮小結果集。如果你設了某個縣市,可能會讓大部分任務都空手而歸;除非真的只看某個地方面交,不然建議先留空。
把 ai-goofish-monitor 放回工具光譜看,它屬於「專注單一平台、用 AI 視覺加值」這一類。比起通用型的網路監控工具(例如 Sniffnet 著眼於流量可視化),它的視角完全鎖在閒魚商品流;比起通用型的 Python AI 工作台(例如 QuantDinger 與 dYm 處理的是使用者自己的量化或歸檔資料),它的資料來源是固定的爬蟲,不是使用者提供的資料庫或本機檔案。
換句話說,它的價值與限制都來自同一個設計選擇:綁死閒魚。綁死的好處是 README、Web UI、AI prompt、通知格式全部針對閒魚欄位調整過;綁死的代價是這套工具不能直接搬到其他二手平台(蝦皮、旋轉拍賣、Facebook Marketplace)使用,要移植得自己改爬蟲層。
對於想了解「AI 視覺如何加進爬蟲流程」的讀者,它是一個閱讀價值很高的範例專案;對於想要跨平台監控的讀者,它更接近一份單平台參考實作。
ai-goofish-monitor 採 MIT 授權,LICENSE 落款是 dingyufei615;GitHub organization 名稱 Usagi-org 是作者用的組織帳號。比起許多同類開源工具介紹案例裡常見「README 寫 MIT 但倉庫無 LICENSE 檔」的授權狀態不明確情況,這個專案的授權狀態是清晰的,是可以拿來自用、修改、再散布的。
不過,高星數不等於持續維護。專案在 GitHub 上的狀態是 archived(已封存),最近一次 commit 落在 2026-05-18,截至 2026 年 7 月約兩個月未再更新。最後一個正式 release 是 v2.4(2026-04-27 發布),最後一次 commit 則是合併一份安全性修補,修掉 /api/prompts/{filename} endpoint 的路徑遍歷漏洞(PR #489)。可以推論,作者選擇在修完這個安全問題之後把專案封存,凍結在一個相對完整的版本上。
封存意味著作者已經主動標示「不再維護」,未來若閒魚改版導致爬蟲失效、或 Chromium/Playwright 有重大更新,這個專案不會再收到修正。56 個未關閉的 issue 也不會再被處理。這是部署前必須接受的事實:你部署的是一個凍結在 2026 年 5 月的版本,未來修補要靠你自己 fork 出去改。把它當作「研究用參考實作」比當作「長期生產服務」更合適。
作者在 README 的致謝段落列了兩條線索:參考了 superboyyy/xianyu_spider 這個前身專案,並感謝 LinuxDo 社群 (@jooooody 等) 的腳本貢獻。這份程式碼建立在已經存在的閒魚爬蟲生態上,再把視覺模型與 Web 介面疊上去,不是從零開始。
對台灣讀者來說,使用這個工具前要先把幾個地理與帳號前提處理掉。
閒魚帳號前提。閒魚是中國大陸的 C2C 平台,要登入閒魚本身就需要中國手機門號綁定的淘寶或支付寶帳號。對台灣讀者來說,這通常是跨境拍賣或人民幣收付需求才會跨進去的場域。
網路環境前提。從台灣連閒魚的網路品質與可用性,取決於你的網路環境。Playwright 跑的是瀏覽器,吃的是你宿主機的網路;要不要走代理、走哪個代理,是部署前要先決定的事,工具本身只提供 PROXY_URL 與代理輪換機制讓你掛上去。
預設 AI 端點位置。預設的 AI 端點在中國大陸(ModelScope),預設的視覺模型是小米 MiMo。如果你想把資料流向限縮在非中國基礎設施,這組預設值必須改掉;可選的替代包括 OpenAI、Azure OpenAI、Cloudflare AI 或自架的 Ollama/vLLM。
對台灣讀者來說,這個工具的最佳應用場景,是「已經在跨境買人民幣計價的二手 3C、零件、收藏品,而且願意自己處理帳號與網路前提」的那一群人。對一般本地二手交易,旋轉拍賣、蝦皮台灣在地拍賣更貼近日常。
| 適合 | 不適合 |
|---|---|
| 想研究 AI 視覺整合進爬蟲流程的開發者 | 想找長期穩定、會持續更新的生產服務 |
| 已有閒魚帳號、做跨境二手收物的玩家 | 只在台灣本地二手市場活動的一般使用者 |
| 願意自架 Docker、自己處理 AI key 與代理 | 期望開箱即用、不願碰設定的使用者 |
| 把它當 MIT 授權參考程式碼來改寫 | 想直接商用轉售、卻不願自行承擔維護 |
把它放回 TripStar 這類「開源 AI Agent」與 dYm 這類「本機 SQLite + AI 上標籤」的光譜來看,ai-goofish-monitor 是同一個「dual-use 開源專案」家族裡,鎖定電商平台爬蟲加視覺判讀這個利基的成員。它能不能用,取決於你願不願意把帳號、網路、AI 端點與維護責任一次扛起來。
可以用它來監控蝦皮或旋轉拍賣嗎?
不行。它的爬蟲層是專門為閒魚寫的,要移植到其他平台得自己改寫抓取邏輯、登入態處理與欄位解析。README 也沒有提供其他平台介接的選項。
AI 視覺判讀會不會把圖留在本機?
不會。預設行為是把圖送到你設定的 OpenAI 相容端點;要讓圖真的不出本機,得自己接本地推論方案當 OpenAI 相容伺服器(例如 Ollama 或 vLLM 上跑視覺模型),並把 OPENAI_BASE_URL 指過去。
這個專案還在維護嗎?
截至 2026 年 7 月,GitHub 上的狀態是 archived(已封存),最近一次更新是 2026-05-18。作者不再 push 修正,閒魚改版造成的破壞不會被修。
會不會違反閒魚的服務條款?
工具的 DISCLAIMER.md 明確把它定位為學習研究用途,並要求使用者遵守所在司法管轄區的法律。實際是否違反閒魚 ToS,取決於你的使用頻率、行為模式與閒魚當時的政策;帳號風險由使用者自負。
MIT 授權可以商用嗎?
可以。MIT 是寬鬆授權,允許商用、修改、再散布,只要保留版權宣告與授權條款。實際能不能順利用在商業場景,還是要看你的使用情境是否牴觸閒魚 ToS 或當地法規。
ai-goofish-monitor 把 AI 視覺加進閒魚爬蟲的設計,讓它在通用監控工具的類別裡有一個清晰的位置:它把「自然語言條件 + 視覺判讀 + 多頻道通知」這一套組合,鎖在中國大陸最大的 C2C 二手平台上,不走全網監控路線,也不是 local-first 的隱私工具。對台灣讀者來說,價值更接近研究與跨境採購的輔助角色,日常使用空間有限。
如果你打算部署它,記得把幾件事一起寫進清單:改掉預設密碼、把 Web UI 放在 HTTPS 反向代理後面、把 AI 端點改成你信任的服務、把使用頻率壓在閒魚風控可以接受的範圍內。如果你只是想看 AI 視覺怎麼跟爬蟲綁在一起,這份 MIT 授權的程式碼本身就是一份夠完整的閱讀材料。