以下 6 段指令範本是可以直接複製改寫套到自己情境的版本。把「高中升學營隊」換成你的主題(例如「研究室招生資訊」「親子活動清單」「畢業旅行行程比價」),就能產出對應的搜尋平台。標原文的是當時的逐字稿。
指令 1 · 階段 1 搭骨架
一次性生成最小可動的雛形
不要分成「先做後端再做前端」這種多步驟,把整個專案的角色一次說清楚,讓 Claude Code 一次給出 16 個檔案的骨架,有什麼問題後面再改。
請幫我做一個「高中升學營隊搜尋平台」的最小可動版本。技術選型:
1. Flask 後端(Python),搭配 SSE 把「抓取進度」即時推到前端
2. 前端用單一 HTML 模板,顯示「篩選列 + 進度條 + 結果表格」
3. 爬蟲先用「假資料生成器」佔位,之後再換真資料
4. Gemini API 用 google-genai SDK + Google Search grounding 工具,作為「結構化 API 拿不到時的補抓備胎」
請建立完整目錄結構(scrapers / core / templates / static / data),寫好 requirements.txt,先確保「python app.py 後瀏覽器打得開、按鈕按得動、結果表格能渲染」。
關鍵心法:骨架不必對,但要「跑得動」。Claude 給的雛形通常不完美,但讓你看見整個專案的形狀,後面要修哪裡才有依據。
指令 2 · 階段 2 找資料源 · 原文
請 AI 先找穩定來源,而不是急著寫爬蟲
這句原話只有一行,但精準引導 AI 先做「資料探勘」,而不是直接動手寫爬蟲。AI 因此先去 WebSearch 確認哪些站點還活著、結構長什麼樣,而不是憑想像寫 selector。
穩定的聚合來源(例如教育部 ColleGo!、學校聯合活動站)能先幫我處理好嗎?
關鍵心法:對方是學習對象不是員工。先用一句話「請先處理 X」框定範圍,AI 會主動做探勘並把它能找到的選項報給你,而不是憑直覺寫程式碼。
指令 3 · 階段 3 發現 API · 重新整理
遇到 JavaScript 動態載入的網站,不要硬爬 DOM
原文是來回對話累積出來的,這裡整理成單一指令。重點是教 AI「看不到目標元素時不要慌,先找有沒有 JSON API」。
這個聚合站的列表頁我用 BeautifulSoup 抓不到 div.cours-bx,看來是 JavaScript 動態載入的。請改用以下策略:
1. 用 requests 拿原始 HTML(不執行 JS)
2. 用正規表達式或字串搜尋,在 inline <script> 區塊裡找有沒有像 /api/、/json/、event/search/ 這種端點
3. 找到後直接 curl 那個端點看回什麼,優先用結構化 JSON
4. 若該 API 的 CORS 設成允許跨域,純前端的 standalone.html 之後就能直接呼叫,不必經過後端
請列出你找到的所有候選 API 端點,我們再挑一個用。
關鍵心法:單頁式應用(SPA)的列表頁多半從 JSON API 載入。能用 API 就不要用 LLM 解析自由文字,API 拿到的欄位整齊、便宜、不會跟你「演繹」假資料。
指令 4 · 階段 4 介面要求 · 原文
用一句話同時要求「介面風格」與「部署方式」
老師原話三個重點壓縮在一句:HTML 介面、Apple HIG 風格、能分享到教學平台。這逼著 Claude 同時設計兩件事(本機 Flask 版 vs 可分享單檔版),並提早思考 CORS 問題。
若建一個 HTML 介面讓我使用,是否會很方便?而且設計感要 APPLE HIG。之後我也可以分享在我的教學平台裡。
關鍵心法:把「我之後要拿這個做什麼」一起講出來。「分享到教學平台」這 7 個字讓 Claude 立即想到「那需要單檔可移植版」,於是提早設計 standalone.html 的架構,而不是事後再拆出來。
指令 5 · 階段 6 查證來源 · 原文
看到結果好像不對,直接問「資料從哪來」
這是整個專案最有教學價值的提示詞。看似只是查證問題,但這一問讓 Claude 跑對照表發現自己之前估的「涵蓋率 80%」其實只有 25%,主動承認錯誤、更新 README、補位 unews。
這些搜尋出來的資料是全部從 E-port 賦能港上抓下來,還是也包括自己搜尋的?涵蓋率大概多少?可以列一張表給我看哪些學校有抓到、哪些沒有嗎?
關鍵心法:任何 AI 給你的百分比都該再用一段程式算給自己看。Claude 可能憑感覺說「涵蓋率約 80%」,實際跑對照表才知道只有 25%。三句話的查證能省下後面好幾個錯誤決策。
指令 6 · 階段 5+6 修 bug 與補位 · 重新整理
清楚描述症狀,別讓 AI 猜「你想要什麼」
修 bug 的指令要包含三件事:症狀、預期結果、目前的猜測。給太少資訊 AI 會亂改;給太多細節又會被誤導。中間值如下範例。
看 UI 上幾筆營隊的「費用」欄顯示成「NT$ 6500626006260092200」,顯然不對。我推測是因為這些營隊有多個價格(例如三堂合購 6,500、單堂 2,600、進階版 9,220),目前的解析把所有數字串接起來變成怪數字。
請:
1. 列出爬下來的原始 event_price 字串(取 3 個有問題的範例)
2. 若有 highest_price 這類純數字欄位,改優先取它
3. 若沒有,則只取字串中第一個出現的整數
4. 修完後跑一次完整 pipeline,確認所有費用都在合理範圍(0 到 50,000)
去重的部分:目前閾值 0.7 把「現代醫學課程 A」「現代醫學課程 B」「現代醫學課程 D」誤合成一筆。改為「強正規化(去數字 / 標點 / 空白)後完全相同才合併」,不要用相似度。
關鍵心法:修 bug 給三件事就夠:症狀 + 預期 + 猜測。猜測要說「我推測是因為...」而不是「請修這個 bug」,AI 有方向才修得準。