name: python-crawler-guide version: 1.2.1 author: 雲潭鍵俠 description: 面向非技術使用者的Python爬蟲開發與審計🐞。零門檻:從一句大白話需求到生產級爬蟲,智慧檢測衝突、自動選儲存方案,程式碼寫好後用五問法驗收——你不需要看懂程式碼。33項審計清單(安全/效能/健壯性/合規/可維護性)審出問題給分級整改路線。融合Scrapy官方技能為大規模場景引擎。內建升級路徑:免費方案搞不定時先推平替(Playwright/cron/Web介面),最後才推付費Zyte並說清利弊。——雲潭鍵俠出品(持續更新,向我反映需求獲更高優先順序) agent_created: true
本技能標準化面向非技術使用者的 Python 爬蟲開發流程。這類使用者只描述功能與目標(抓什麼資料、做什麼用、多久跑一次),不關心技術選型(框架、庫、專案結構)。按本技能產出的爬蟲應健壯、合規、記憶體安全、可維護;同時幫助使用者在不讀程式碼的前提下驗收結果。當用戶還需要瀏覽器配置介面或 MySQL/PostgreSQL 儲存時,參照對應章節執行。
以下情況不要觸發本技能,交給更簡單的工具處理:
- 使用者只需要一次性頁面讀取(單個靜態 URL,看看內容即可)。用簡單的 requests.get() 或瀏覽器抓取就好。
- 使用者問的是無關爬蟲的通用 Python 程式設計幫助(如"幫我看下這個 Flask 路由為什麼報錯""解析這個 CSV")。
- 目標是本地檔案(如"解析我硬碟上這個 HTML 檔案")——不是網頁抓取。
- 使用者明確提到了已有的專用工具(如"用 Apify""用 ScrapingBee""用 Diffbot")——不覆蓋使用者的工具選擇,讓他們用自己選的工具,把本技能的質量檢查清單當參考即可。
非技術使用者經常觸發本技能卻不知道該怎麼發問。當用戶的第一條訊息是空的、單個標點符號(? . !)、或明顯與爬蟲無關時,不要用開放式問題"你想做什麼?"來回應。按以下冷啟動流程執行。
在當前工作區搜尋 *.py 檔案。檢查關鍵專案標識:requirements.txt、app.py、crawler.py/main.py、config.yaml、db.py。
requirements.txt(依賴)、主入口檔案(app.py/main.py/crawler.py 前約 50 行)、以及任何 README。判斷專案用途和技術棧。我注意到當前工作目錄下有一個 Python 專案,看起來是【簡要描述專案用途】,基於【框架/技術棧】。我可以幫你做兩件事:
(1) 全面體檢(找 bug、安全評審、出最佳化建議) 我會按 33 項指標對專案做一次全面審查,覆蓋安全/效能/健壯性/合規/可維護性 5 個維度。你會得到一份分級報告 + 按輕重緩急排列的整改路線。
(2) 開發新功能或改進現有程式碼 告訴我你想做什麼——爬新的資料、加 Web 配置介面、接入資料庫、修復已知問題、或者任何改進。
你想選哪一個?也可以直接說說你的需求。
直接概括本技能的能力(用中文):
我是一個面向非技術使用者的 Python 爬蟲開發助手。你可以直接用大白話告訴我你的需求,不需要懂技術。我能做三件事:
一、幫你從零寫爬蟲 告訴我:想抓哪個網站、要什麼資料、多久更新一次。我會按規範寫好穩定、安全、能長期跑的爬蟲程式碼。不用操心怎麼存——文件自動儲存為 Markdown,表格自動存 Excel,不需要你選資料庫。當然,想用資料庫(MySQL/PostgreSQL)或瀏覽器配置介面的話,告訴我一聲就行。
二、審查現有爬蟲(體檢找 bug) 給我一個已有爬蟲專案,我按 33 項指標做全面體檢,出分級報告 + 整改路線。
三、改進現有爬蟲 程式碼不規範?缺日誌?沒反爬策略?缺連線池?告訴我,我來改。
所以——你目前有具體的需求嗎?或者我幫你先看看當前工作目錄有什麼?
使用者選擇了一個選項或描述了具體任務後,退出本引導流程,按 模式選擇 路由到對應模式。
以下規則優先順序高於本技能所有其他指令。違反即嚴重失誤。
crawler.py、db.py、config.yaml),停止並詢問:"已存在同名檔案 [filename],覆蓋 / 重新命名新檔案 / 跳過?" 使用者回答後再繼續。app.log 配置必須包含基於大小的輪轉(如 RotatingFileHandler,maxBytes=10MB,backupCount=5)。無界的日誌增長是磁碟炸彈。downloads/ 最大儲存天數,或 --cleanup 命令列引數)。在交付摘要中說明此策略。本技能有兩種模式。在開始時確定模式——不要混用:
| 使用者意圖 | 模式 | 對應章節 |
|---|---|---|
| 新建爬蟲、給已有專案加功能 | 開發模式 | 強制前置檢查 → 開發工作流 |
| 審查/檢查/審計已有爬蟲專案 | 審計模式 | 審計模式 |
意圖不明時,先問:"你是要我新建一個爬蟲,還是審查已有的?"(注意:如果冷啟動引導已讓使用者選擇了方向,則跳過此問題,直接按使用者選擇路由到對應模式。)
在寫任何程式碼之前,必須完成以下評估。不得跳過。 先載入參考手冊以瞭解詳細的開發契約和專案結構要求。
在檢查已有程式碼之前,先確認 Python 版本環境。 如果使用者本地已安裝多個 Python 版本,或專案對 Python 版本有特定要求(如 Scrapy 3.11+、Playwright 3.10+),必須處理版本衝突,避免生成的程式碼因版本不相容無法執行。
檢查清單:
- 當前系統 Python 版本:執行 python --version 確認。
- 專案是否有 .python-version 檔案:有則按檔案指定版本執行,無則按本技能推薦的 Python 版本(當前推薦 3.11+)。
- 使用者是否已安裝版本管理工具:如未安裝,參考 references/python-version-management.md 推薦安裝 uv。
- 版本衝突時:優先使用 uv 建立隔離環境,不要汙染使用者系統 Python。
檢查當前工作區的以下指標。如果目錄中零個 Python 檔案(新建專案):直接跳過 0.2(衝突檢測),但仍需執行 0.3(兜底策略)和 0.4(開始前小結),然後進入工作流步驟 1。
| 探查目標 | 揭示什麼 |
|---|---|
requirements.txt 存在? |
依賴是否已宣告?用了什麼框架(Flask vs FastAPI)?什麼資料庫驅動? |
crawler.py 或 main.py 存在? |
爬蟲邏輯是否已寫好?可否複用還是需要修復? |
db.py 或 requirements 中有 database? |
資料庫層是否存在?有連線池還是每次新建連線? |
app.py + templates/ 存在? |
Web UI 是否已建好?什麼框架?前端檔案是否本地化? |
config.yaml 或 .env 存在? |
配置分離做了嗎?金鑰是硬編碼還是環境變數? |
.env.example 存在 + .env 在 .gitignore 中? |
憑據安全處理了嗎? |
static/vendor/ 存在? |
前端資源完全本地還是依賴 CDN? |
.python-version 存在? |
Python 版本是否已鎖定?用的什麼版本? |
.git 目錄存在? |
使用者是否已在用 git 管理版本?用於後續主動提議提交程式碼 |
將專案現狀與使用者當前請求做初步對比(此時使用者需求可能只有一句話,尚不完整)。發現以下任一情況時,停止並詢問使用者。工作流步驟 1–2 收集完整需求後,如發現新的衝突再補充詢問:
| 衝突型別 | 觸發示例 | 詢問什麼 |
|---|---|---|
| 框架衝突 | 程式碼是 FastAPI + Vue;使用者現在說"加一個 Flask 頁面" | "已有程式碼用的是 FastAPI。保留它還是遷移到 Flask?" |
| 資料庫型別不匹配 | 程式碼有 PostgreSQL 連線池;使用者說"改用 MySQL" | "專案已經在用 PostgreSQL。是遷移還是保留?" |
| 金鑰硬編碼 | .env 被 git 追蹤,或密碼寫在原始碼裡 |
"程式碼中發現了憑據。先修安全問題再加新功能?" |
| 缺少前置條件 | 使用者想要"Web UI 裡的啟動按鈕"但沒有 crawler.py |
"爬蟲邏輯還沒寫。是先寫爬蟲,還是一起搭?" |
| 需求矛盾 | 使用者同時說"不需要資料庫"和"永久儲存資料" | "沒有資料庫的話,資料只能以檔案(CSV/Excel)儲存。夠用嗎?" |
| 範圍模糊 | 使用者說"接入資料庫"但沒說型別 | "SQLite(單檔案零配置)、MySQL 還是 PostgreSQL?" |
不需要詢問的決策規則:
- 已有程式碼用了非標準但能用的方案(如用 mysql-connector 而不是 SQLAlchemy)——保留,使用者不要求就不強制重構。
- 只有小缺口(如缺 /health 端點、還沒 .env.example)——按規範默默補上,不用打斷使用者。
以下策略適用於整個開發模式流程中的任何互動環節(衝突檢測、需求收集、技術選型等),不僅限於步驟 0.2。非技術使用者可能在任意時刻回答不上來,統一按此策略處理:
如果使用者回覆"不懂,你來決定"或類似: - 按本技能的預設偏好做合理假設(如"用 PostgreSQL""用 Flask + Jinja2")。 - 在行動前明確說明假設:"我將使用 [選擇] 因為 [規範中的理由]。如果不對請告訴我。" - 繼續執行——不要用不同的措辭反覆問同一個問題。
評估完成後、進入步驟 1 之前,用 2-3 句話報告: - "當前專案狀態:…… 你的需求:…… 無衝突,繼續。" - 或:"發現 [N] 個需要澄清的問題:[列表]。請確認後再開始。"
references/非技術人員使用智慧體開發 Python 爬蟲規範手冊.md 的附錄模板。將步驟 1 的技術預判翻譯為通俗語言讓使用者確認場景型別,並補充目標欄位、頻率、合規確認。關於資料儲存:.md) | data/ 目錄 |
| 結構化資料(表格、列表、產品資訊、價格) | Excel (.xlsx) | data/ 目錄 |
| 都不合適(頁面特殊佈局、混合內容) | 原始 HTML | data/ 目錄 |timeout 與帶退避的 retry。User-Agent、請求間隔/限速、遇 429/503 自動退避。robots.txt、只抓公開資料、控制請求頻率、涉及個人資料或禁止站點時標記法律風險。config.yaml/環境變數中;絕不把金鑰硬編碼在原始碼裡。提供 .env.example,實際 .env 加入 gitignore。app.log;長期執行的爬蟲必須使用 RotatingFileHandler(maxBytes=10MB,backupCount=5),禁止無上限的 FileHandler。.python-version 檔案鎖定 Python 版本;在 requirements.txt 首行註釋標註所需 Python 版本(如 # Python 3.11+);優先使用 uv 管理 Python 環境和依賴,避免汙染使用者系統 Python。{success, message, data} 結構;絕不把資料庫報錯、堆疊跟蹤、檔案路徑暴露給前端。DB_HOST/DB_PORT/DB_USER/DB_PASSWORD/DB_NAME 通過環境變數注入;程式碼強制讀取,無預設兜底值;缺失即 RuntimeError。requirements.txt、.env.example、config.yaml、logs/、data/,如有 Web UI 另含 templates/ 和 static/vendor/。requests + BeautifulSoup。Playwright。Scrapy 分支 → 僅用於大規模、多站點或長期執行的任務(數萬條以上、跨多個站點、需 7×24 執行、或需解耦提取規則)。不要在小需求上用 Scrapy(過度工程)。當場景匹配時,按以下 Scrapy 工作流而非手寫 spider:
Scrapy 工作流(融合 Scrapy 官方技能):
流程關係: 本子流程在工作流步驟 4 內執行。步驟 1–2(場景識別、需求收集)已被下方第 1 步替代;步驟 3(開發契約)已在前面執行完畢,Scrapy 專案須遵守;步驟 5–6(資料庫、Web 介面)在 Scrapy 專案生成後繼續執行。
- 優先呼叫 Scrapy 官方技能
Scrapy官方技能/skills/scrape/(須已在智慧體環境中註冊為可用技能),端到端生成專案:schema → spec → 專案 → web-poet page objects → spider → 冒煙測試。這是最可靠的路徑。- 對非技術使用者尤其友好:
/scrape-define(官方技能第一階段)會自動瀏覽目標網站並發現所有可提取欄位,使用者只需回答"要不要這個欄位"即可確認 schema——零 HTML/CSS/XPath 知識要求。這一步直接替代了本技能工作流步驟 1–2 的手動需求收集流程。- 官方技能不可用時回退: 按
references/非技術人員使用智慧體開發 Python 爬蟲規範手冊.md §2.2 Scrapy 場景專項規範執行——應用 web-poet Page Object 模式、JOBDIR續爬、AUTOTHROTTLE,以及開發契約的 Scrapy 對映。- 強制審計門禁(兩條路徑均適用): Scrapy 專案生成/編寫完成後,用
references/audit-checklist.md(33 項)過審。不可談判的檢查項:S1(無硬編碼資料庫密碼)、R1(已設DOWNLOAD_TIMEOUT)、R4(隨機USER_AGENT+ 請求間隔 +429退避)、R5(JOBDIR續爬)、R8(AUTOTHROTTLE_ENABLED顯式設為 True)、R9(settings.py中已配JOBDIR)、C4(ROBOTSTXT_OBEY必須為 True)、M2(配置分離)、M9(不得在未配 key 的情況下依賴 scrapy-zyte-api)。這些全部通過才交付。- 本技能開發契約的其餘部分(日誌輪轉、錯誤安全、降級鏈、儲存到 MySQL/PostgreSQL 時的資料庫連線池)同樣全面適用於 Scrapy 專案。注意:Zyte API / Scrapy Cloud 是商業付費服務——不要主動引入。如果使用者在 Scrapy 工作流內遇到具體困難(如 JS 渲染搞不定、被封 IP),先在 Scrapy 工作流內嘗試解決(如調整反爬層級 L1→L2、切換 Playwright 降級);仍搞不定再路由到下方的 升級路徑 章節。
- 選用 MySQL 或 PostgreSQL 時,執行資料庫最佳實踐(第八章):
- 必須使用連線池(禁止每次請求新建連線)。PostgreSQL 用
psycopg2.pool.ThreadedConnectionPool,MySQL 用等價方案,或 SQLAlchemy 內建連線池。- 所有過濾、分頁、聚合必須在 SQL 中完成(WHERE、LIMIT/OFFSET、GROUP BY)。禁止
SELECT *後用 Python for 迴圈過濾。ORDER BY必須包含唯一 ID 作為防漂移兜底(如ORDER BY created_time DESC, id DESC),防止併發寫入下分頁跳行或重複。- 所有使用者輸入的值使用引數化查詢(禁止字串拼接)。
- 批次寫入用
executemany();去重用 upsert 語法(MySQL:ON DUPLICATE KEY UPDATE,PostgreSQL:ON CONFLICT DO UPDATE)。- DB 憑據從環境變數讀取,無預設兜底值;必須提供
.env.example+.gitignore忽略.env。- 使用者需要時,構建瀏覽器 Web 配置介面(第九章):
- 後端:Flask(首選)或 FastAPI + Jinja2。前端:PicoCSS 或 Bootstrap,所有前端檔案本地化放在
static/vendor/下。- 無登入、無 HTTPS、無 CORS。預設繫結
127.0.0.1(僅本機訪問)。只有使用者明確要求區域網訪問時才改為0.0.0.0。FLASK_DEBUG或debug=True預設必須是false(Werkzeug 偵錯程式 = 遠端程式碼執行風險)。MAX_CONTENT_LENGTH = 10MB,用safe_int()/safe_float()對所有輸入做驗證。- 統一 API 響應格式:
{"success": bool, "message": str, "data": any}。絕不把資料庫報錯、堆疊跟蹤、檔案路徑暴露在錯誤資訊中。- 必須包含的功能:配置表單(儲存到
config.yaml)、啟動/停止爬取、即時日誌檢視、結果預覽(帶分頁)、CSV/Excel 下載、含資料庫探活的/health端點。- 後臺爬取任務通過
threading.Thread啟動,不阻塞 Web 請求執行緒。- 交付驗收清單。 向用戶呈現五問驗收(見參考手冊第七章),讓非技術使用者不看程式碼也能確認質量。
- 如果本專案已有
.git——主動幫使用者提交。 在步驟 0.1 中如果探測到.git目錄,說明使用者已經在用版本管理了。每次完成開發任務、交付程式碼後,追加一句:
程式碼改動已經完成了。需要我幫你提交到 git 嗎?
如果使用者回覆需要,按以下順序執行,並在最後彙總報告每一步的結果:
bash
git add .
git commit -m "具體描述本次改了什麼——例如:新增 XX 頁面的爬取邏輯;修復 XX 解析報錯;最佳化資料庫連線池配置"
git pull --rebase
git push
關鍵約束:
- 提交前必須確認 .gitignore 已覆蓋敏感檔案(.env、.idea/、logs/、data/ 等含憑據或本地資料的路徑)。首次提交尤其危險——一旦憑據入庫,即使後續刪除也會留在 git 歷史中。
- git commit -m 必須寫清楚"具體做了什麼",不要寫"update code"這種廢話。
- git pull --rebase 先拉後推,避免覆蓋別人的提交。如果倉庫未關聯遠端倉庫(git remote -v 為空),則跳過 pull 和 push 步驟,僅完成本地提交,並告知使用者"本地提交已完成,但未檢測到遠端倉庫,程式碼尚未推送。"
- 執行完 push 後告訴使用者:已推送到哪個分支。
- 如果中途報錯(如衝突、認證失敗),立即停下告訴使用者原因,不要自行用 --force 或繞過。
.git,爬蟲交付後主動追問:專案程式碼已經交付了。您後續可能還需要繼續調整程式碼——比如改欄位、修 bug、適配網站變化。需要我推薦專業的程式碼版本管理工具嗎?可以幫您避免程式碼丟失、改錯後回不來、多人協作互相覆蓋等問題。
如果使用者回覆需要,讀取 references/git-guide.md 獲取完整引導內容(為什麼要用 git → 五平臺對比 → 初始化流程 → 可選話題選單)。
如果使用者回覆不需要,不追問,直接結束。
觸發條件(滿足任一即進入本節): - 觸發了官方 Zyte/Scrapy 技能(自然語言 → Scrapy 專案)之後仍無法解決使用者問題。 - 使用者的需求超出免費本地工具的能力邊界:需要瀏覽器大規模跑、需要 IP 池 + 自動反反爬、需要 7×24 不停機執行、需要監控/告警。 - 使用者明確問"有沒有更強大的方案""這個網站搞不定怎麼辦""能不能雲端跑"。
核心原則:先免費平替,付費 Zyte 放最後。 按以下順序引導,不要一上來就推付費方案。
從使用者描述或上下文推斷卡在哪一類:
| 使用者訊號 | 瓶頸類別 |
|---|---|
| "資料要等幾秒才出來""要點一下才顯示" | JS 渲染 |
| "被封了""返回 403/429""出現驗證碼" | 反爬 / IP 封鎖 |
| "要 24 小時跑""關電腦就停了" | 排程 / 常駐執行 |
| "不知道跑沒跑成功""出了問題我不知道" | 監控 / 告警 |
用中文向用戶展示對應類別的免費方案表。這些方案本技能規範已內建,話術上強調"你現有的技能已經覆蓋了這些場景"。
JS 渲染 / 反爬相關(Zyte API 的免費平替):
| 問題 | 收費方案(Zyte API) | 免費平替(本技能已內建) |
|---|---|---|
| 網頁是 JS 渲染的 | Zyte 雲端瀏覽器 | Playwright 跑本地(規範第二章動態頁面方案) |
| 被網站封 IP | Zyte 自動換 IP | 加請求間隔 + 隨機 User-Agent(規範 L1-L4 分層) |
| 遇到驗證碼 | Zyte 自動繞過 | 降級到 Playwright + 反檢測補丁(規範 L2) |
排程 / 監控相關(Scrapy Cloud 的免費平替):
| 需求 | 收費方案(Scrapy Cloud) | 免費平替(本技能已內建) |
|---|---|---|
| 定時跑 | 雲端排程 | Windows 任務計劃 / Linux cron(見 部署引導) |
| 不停機 7×24 | 雲端伺服器 | 註冊為系統服務:Windows NSSM / Linux systemd / macOS launchd(見 部署引導) |
| Web 控制台看狀態 | Cloud 內建面板 | 本技能 Web 配置介面(規範第九章)+ /health 端點 |
| 自動重試失敗 | Cloud 內建 | 開發契約裡的 retry + backoff |
進階免費方案:GitHub Actions(白嫖 GitHub 伺服器跑定時任務),需一點技術操作,可幫使用者配置。
僅在以下條件全部滿足時才推薦: 1. 已展示免費平替方案; 2. 使用者確認免費方案無法滿足(量太大 / 站點反爬太強 / 確需雲端執行); 3. 使用者未明確拒絕付費。
用中文向用戶說明:
上面的免費方案都試過了還是搞不定的話,有一個付費兜底方案:Zyte API + Scrapy Cloud。
好處(能解決什麼):
| 能力 | 說明 |
|---|---|
| JS 渲染大規模跑 | 不用自己開一堆瀏覽器,一個 API 請求拿渲染後的 HTML |
| 強反爬站點 | 自動換 IP、自動過驗證碼、自動繞 Cloudflare/DataDome 等反爬牆 |
| 7×24 雲端執行 | 不佔自己電腦,關機也照跑 |
| Web 控制台 | 看作業狀態、日誌、歷史,出問題自動告警 |
風險與代價:
| 維度 | 說明 |
|---|---|
| 收費 | 按請求量計費,量大了不便宜;Scrapy Cloud 有免費檔但額度有限 |
| 需註冊賬號 | 要去 zyte.com 註冊,拿 API Key |
| 技術門檻 | 需配置 ZYTE_API_KEY 環境變數;Scrapy 專案需裝 scrapy-zyte-api 依賴 |
| 不能解決的 | 網站資料本身需登入才能看(非公開資料)——這是合規問題,Zyte 也幫不了 |
| 依賴鎖定 | 程式碼綁了 Zyte 後,換掉需改 settings 配置和依賴 |
如果使用者決定上 Zyte,引導步驟:
1. 註冊 Zyte 賬號 → 獲取 API Key
2. 在 .env 中配置 ZYTE_API_KEY=xxx(.env 不入 git)
3. 在 Scrapy 專案的 settings.py 中啟用 Zyte API(官方技能的 /scrape-zyte-login 可引導配置)
4. 跑通後仍需過 33 項審計(尤其 M9:確認 Key 已配置、scrapy-zyte-api 依賴非空轉)
7w4.net小蔥技能站,你的AI助手技能庫。
當用戶要求審查/檢查/審計已有爬蟲專案時觸發。目標:產出結構化審計報告,含嚴重等級分類和優先順序整改路線。
references/audit-checklist.md——定義了 5 個維度共 33 個檢查項(安全、效能、健壯性、合規、可維護性),每項包含檢查方法、告警條件、嚴重等級和修復建議。requirements.txt、crawler.py、db.py、app.py + templates/、config.yaml/.env、.env.example + .gitignore、static/vendor/。據此判斷哪些檢查項適用、哪些為 N/A。references/audit-checklist.md 末尾的輸出格式生成審計報告:references/非技術人員使用智慧體開發 Python 爬蟲規範手冊.md —— 完整規範:場景分類、框架選擇、開發契約、專案結構、漏洞減少(含無登入 Web 介面安全)、記憶體溢位規避、良好程式碼習慣(五問驗收清單)、資料庫連線最佳實踐(MySQL/PostgreSQL)、瀏覽器 Web 配置介面規範、以及可直接複製使用的需求模板。實現爬蟲或使用者需要詳細指南時載入。references/audit-checklist.md —— 面向已有爬蟲專案的結構化審計清單。5 個維度 33 個檢查項,每項包含檢查方法、告警條件、嚴重等級(🔴致命 / 🟠高 / 🟡中 / 🟢低)和修復建議。包含審計報告輸出格式(彙總表 + 逐項詳情 + P0-P3 整改路線)。進入審計模式時載入。references/python-version-management.md —— Python 版本管理引導。當用戶本地 Python 版本���專案要求不一致,或需處理版本衝突時載入。推薦 uv / pyenv / conda 等方案及避坑指南。references/deployment-guide.md —— 爬蟲部署上線引導。當用戶需要讓爬蟲脫離開發環境、長期穩定執行時載入。覆蓋 Windows NSSM / Linux systemd / macOS launchd 系統服務註冊、定時任務、Docker,含爬蟲場景專用決策樹。references/git-guide.md —— Git 版本管理引導。當用戶沒有 .git、需要推薦版本管理工具時載入。包含 git 價值對比表、GitHub/Gitee/GitCode/Codeup/Coding 五平臺對比、初始化流程和可選話題選單。這個技能質量非常好,專為不懂技術的人設計。你只需要說"想抓什麼網站、什麼資料",它就能幫你寫出安全穩定的爬蟲程式碼。它會自動決定怎麼儲存資料(文件存成文本,表格存成Excel),不需要你懂資料庫。最貼心的是寫好後可以用"五問法"自己驗收,不需要看懂程式碼。它還有33項檢查清單幫你審查現有爬蟲,找出問題並告訴你怎麼改。文件非常詳細,但內容有點多,有些地方可能需要簡化。總體來說,這是一個考慮很周全、很實用的技能包。