抓取支付寶開放平台文件
支付寶文件站是 JS 渲染的 SPA,WebFetch/curl 拿不到正文,程式碼與參數依賴懶載入與折疊互動。本 Skill 用封裝好的 Playwright 工具一步抓成結構化 Markdown。
何時使用
- 使用者要把某個支付寶 API / 接入指南 / 錯誤碼 / 產品文件「拉到本地」「抓下來」「轉成 Markdown」。
- 使用者貼上
opendocs.alipay.com或opendoc.alipay.com連結並想要其內容。 - 已發現普通網頁抓取(
WebFetch/curl等)對支付寶文件只回傳標題、正文為空。
怎麼用
設本 Skill 安裝目錄為 $SKILL(如 ~/.claude/skills/fetch-alipay-doc,Codex 為 ~/.codex/skills/...,Cursor 為 ~/.cursor/skills/...)。
-
首次使用:在
$SKILL下裝一次依賴(僅一次,與運行目錄無關):(cd "$SKILL" && npm install && npx playwright install chromium) # 若已全域安裝 playwright 可跳過 -
收集要抓的 URL。多篇時寫一個 config JSON 檔案(如
urls.json),內容為陣列[{ "name": "...", "url": "..." }, ...],name決定輸出檔名(可省略,預設用頁面 H1)。 -
在使用者當前專案目錄下運行(用絕對路徑呼叫腳本,產物落到專案內、對使用者可見)。不要
cd進$SKILL再跑——那會把文件寫進 skill 安裝目錄(工具會拒絕)。輸出用--out指定到專案內,按產品/主題分目錄:# 單篇 node "$SKILL/scripts/fetch-alipay-docs.cjs" --url "<支付寶文件URL>" --name "<檔名>" --out ./alipay-docs/<產品名> # 批次 node "$SKILL/scripts/fetch-alipay-docs.cjs" --config urls.json --out ./alipay-docs/<產品名>node 解析 playwright 依賴是從腳本檔案位置找
node_modules,與運行目錄無關,所以站在專案目錄用絕對路徑呼叫即可。 -
產出在
--out目錄:<name>.md+images/。--out預設為目前目錄下的./alipay-docs。
關鍵原則
- 忠實:正文文字必須 100% 來自頁面,禁止虛構 / 總結 / 改寫 / 解讀。工具只做機械格式化。
抓完自檢清單
每抓完一篇,逐項核對,有問題按「排障」處理或重抓:
- 無殘留
@@...@@佔位(佔位未被替換 = 程式碼/表格/圖片遺失)。 - 無 UI 噪音行(收藏 / 訂閱更新 / 我的文件 / cURL·Java·C# tab 標籤 / 「本範例僅供參考」/ 「收起所有屬性」等)。
- 圖片引用全部命中本地
images/檔案(無壞鏈)。 - API 業務參數含巢狀子屬性與枚舉值且完整(對照頁面「展開所有屬性」後的狀態)。
- 公共請求/回應參數表、Java 請求範例、錯誤碼表齊全。
- 表格 rowspan 對齊正確(每行 code 與其 sub_code 一一對應,無錯位)。
排障
- 程式碼 / 參數缺失 → 多半是懶載入未滾到或折疊(「更多」枚舉、「子屬性」巢狀)未展開;確認抓取流程做了全文滾動 + 逐個真實點擊展開。
- 圖片下不下來 →
cdn.nlark.com(語雀圖床)用 nodehttps會失敗,本工具改用curl(帶 UA / Referer);確認系統裝了curl。 - 介面頁結構異常(如通知 / 回調類,section 是「訊息屬性 / 通知應答」而非標準請求/回應) → 本工具按通用 H2 分段相容,無需硬編碼 section 名。
維護者註:完整的踩坑經驗、各坑的成因與設計依據見倉庫根
PLAYBOOK.md(不隨 Skill 安裝分發,改程式碼前務必讀)。