markdown-crawler
Version:
A powerful web crawler that extracts content from web pages and converts them to clean Markdown format, with support for code blocks and GitHub Flavored Markdown
91 lines (68 loc) • 3.22 kB
Markdown
# markdown-crawler
[English](README.md) | [繁體中文](README-zhTW.md) | [日本語](README-ja.md)
一個專為 AI 閱讀優化的網頁爬蟲工具,可以將網頁內容轉換成結構化的 Markdown 格式。透過智慧演算法清理雜訊,提取核心內容,產生適合 AI 模型理解和處理的純文本資料。特別之處在於能夠將一個網站的所有相關頁面(包含當前頁面及其所有子目錄)整合成單一的 YAML 檔案,產生結構清晰的 Markdown 內容。
## 為何適合 AI 閱讀?
- 🧠 智慧提取主要內容,移除廣告、導航列等干擾元素
- 🎯 保留文章的邏輯結構和語意關係
- 📋 轉換成標準化的 Markdown 格式,便於 AI 解析
- 🔄 自動處理特殊字元和編碼,確保文本品質
- 📊 以 YAML 格式整合所有頁面,方便批次處理
## 功能特點
- 🚀 使用 fetch 和 cheerio 進行高效網頁爬取,支援現代網頁
- 📝 使用 Mozilla 的 Readability 演算法智慧提取主要內容
- ✨ 自動轉換成結構化的 Markdown 格式,移除不必要的樣式和雜訊
- 🎨 支援 GitHub Flavored Markdown (GFM),保留重要的格式資訊
- 💻 支援程式碼區塊的語法高亮,保持技術文件的可讀性
- 🔗 自動遞迴爬取所有相關頁面,整合成單一檔案
- 🧹 優化最小化依賴項,確保輕量化和快速運行
- ⚡ 顯著提升處理速度,效能大幅優化
- 📄 增強的 Markdown 輸出,格式更乾淨,連結處理更完善
## 資料整合優勢
- 📚 自動爬取目標網址及其所有子目錄頁面
- 🗂️ 將所有頁面內容整合到單一 YAML 檔案中
- 📖 每個頁面都保持其標題和內容的完整性
- 🎯 產生的 Markdown 格式同時適合人類閱讀和 AI 處理
- 🔍 便於快速瀏覽和搜尋大量相關內容
## 使用方法
```bash
# 基本用法
npx markdown-crawler <網址> <輸出檔案名稱>
# 範例:爬取網站並儲存為 output.yaml
npx markdown-crawler https://example.com output
# 如果網址包含空格,請使用雙引號
npx markdown-crawler "https://example.com/my page" output
# 輸出檔案會自動加上 .yaml 副檔名
# 結果會儲存在目前的工作目錄中
```
## 輸出格式
工具會將所有相關頁面整合成結構化的 YAML 格式:
```yaml
- title: "主頁標題"
url: "https://example.com/"
content: |
# 主頁內容
這裡是主頁的正文...
- title: "子頁面1標題"
url: "https://example.com/subpage1"
content: |
# 子頁面1內容
這裡是子頁面1的正文...
- title: "子頁面2標題"
url: "https://example.com/subpage2"
content: |
# 子頁面2內容
這裡是子頁面2的正文...
```
特點:
- 自動提取每個頁面的標題和主要內容
- 包含每個頁面的原始 URL 以供參考
- 保持內容的層級結構和格式
- 移除不必要的樣式和腳本
- 生成乾淨、可讀的 Markdown,連結格式正確
- 正確保留核取方塊和其他 Markdown 元素
- 適合人類閱讀和 AI 模型處理
## 系統需求
- Node.js >= 16.0.0
- npm 或 yarn 套件管理器
## 授權
本專案使用 MIT 授權條款 - 詳見 [LICENSE](LICENSE) 檔案。