96 lines
3.0 KiB
Markdown
96 lines
3.0 KiB
Markdown
|
|
---
|
|||
|
|
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 和使用條款
|