--- name: web-to-markdown description: 將網頁(單頁或多頁爬取)轉換為乾淨的 Markdown 格式,方便 AI 分析理解。支援單頁模式和爬蟲模式(追蹤連結、同域抓取)。 --- # Web to Markdown Skill 將任意網頁轉換成結構清晰的 Markdown,讓 AI 能更有效率讀取網頁內容。適合用於: - 分析競品功能頁、定價頁 - 爬取文件站點(docs site) - 將整個網站的主要頁面轉換為 AI 可讀格式 ## 前置需求 使用前先確認 Python 套件已安裝: ```bash pip install requests beautifulsoup4 html2text lxml ``` ## 兩種使用模式 ### 模式一:單頁轉換 ```bash python claude/skills/web-to-markdown/scripts/web_to_md.py \ --url "https://example.com/features" \ --output "scraped/features.md" ``` ### 模式二:爬蟲模式(追蹤同域連結) ```bash python claude/skills/web-to-markdown/scripts/web_to_md.py \ --url "https://example.com" \ --crawl \ --depth 2 \ --output-dir "scraped/example-com/" ``` 參數說明: - `--url`:起始 URL(必填) - `--crawl`:啟用爬蟲模式,追蹤同域連結 - `--depth N`:爬蟲深度,預設為 2(首頁=0,首頁連結的頁面=1,以此類推) - `--same-path`:只爬取相同路徑前綴下的連結(例如只爬 `/docs/` 目錄下的頁面) - `--output`:單頁模式的輸出檔案路徑 - `--output-dir`:爬蟲模式的輸出目錄,每個頁面存成獨立 `.md` 檔 - `--max-pages N`:最多爬取 N 頁,防止無限爬取(預設 50) - `--delay N`:每次請求間隔秒數,避免對伺服器造成壓力(預設 1.0) - `--exclude`:排除含有特定關鍵字的 URL(可多次使用) ## 在 Agent 中使用 當 pm-competitor-analyst 需要分析競品網站時: ```python # 1. 先用爬蟲模式抓取競品網站 Bash: python .claude/skills/web-to-markdown/scripts/web_to_md.py \ --url "https://competitor.com" \ --crawl --depth 2 \ --output-dir "docs/prd/drafts/competitor-site/" \ --exclude "/blog" --exclude "/login" --exclude "/signup" # 2. 讀取轉換好的 Markdown 檔案進行分析 Read: docs/prd/drafts/competitor-site/index.md Read: docs/prd/drafts/competitor-site/features.md Read: docs/prd/drafts/competitor-site/pricing.md ``` ## 輸出格式說明 每個轉換後的 Markdown 文件開頭包含: ``` --- title: [頁面標題] url: [原始 URL] crawled_at: [抓取時間] --- ``` 接著是清理過的正文 Markdown,包含: - 標題層級(H1-H6) - 段落文字 - 連結(保留為 `[文字](URL)`) - 列表 - 表格(轉為 Markdown 表格) - 移除:廣告、導航列、頁腳、Cookie 提示等雜訊 ## 注意事項 - 爬蟲只抓取**同一域名**下的連結(不會跨到外部網站) - 自動跳過圖片、PDF、ZIP 等非 HTML 資源 - 遇到 JavaScript 渲染的 SPA 網站,部分內容可能無法抓到(這個腳本使用靜態 HTTP 請求) - 有些網站會封鎖爬蟲,遇到 403/429 時請手動儲存網頁後用 `--file` 模式 - 請遵守網站的 robots.txt 和使用條款