許多開發團隊、技術社群或講師,會大量使用 HackMD 的「書本模式 (Book Mode)」來撰寫官方文件、專案規格書或系列教學文章。然而,當我們想要將這些成套的知識庫離線備份、或是轉移到個人儲存空間時,手動逐篇點擊下載不僅耗時,還容易遺漏。
為了解決這個痛點,我開發了這支 Python 自動化腳本。使用者只需輸入 HackMD 書本目錄的網址,程式便會自動爬取目錄下的所有子連結,並批次下載為 Markdown (.md) 實體檔案,大幅提升知識管理的效率。
- 🔗 智慧解析:利用正規表達式 (Regex) 精準萃取目錄頁中的所有文章標題與隱藏的真實下載連結。
- 📁 視覺化選單:整合
tkinter呼叫作業系統內建的資料夾選擇視窗,提供直覺的儲存路徑設定。 - 🛡️ 防呆與防護機制:
- 自動偵測網址結尾並補齊
/downloadAPI 路徑。 - 過濾檔名中的作業系統非法字元,防止存檔崩潰。
- 加入
time.sleep()禮貌性延遲,避免對目標伺服器造成連線負擔。
- 自動偵測網址結尾並補齊
- 🛑 可中斷 (Graceful Exit):支援
Ctrl + C隨時安全終止下載,並在執行結束後提供完整的成功/失敗統計報告。
- Python 3.x
requests: 處理 HTTP 網路請求。re(Regular Expression): 解析 Markdown 文本中的超連結結構。tkinter&os: 處理 GUI 視窗與本機檔案系統路徑。
本專案僅使用一個外部套件,請在終端機執行以下指令安裝:
pip install requests