前言
在前面幾天,我們建立了知識庫的架構與筆記系統。然而,光有系統還不夠,每天網路上有大量的技術文章、官方文件、部落格與新聞,如果全靠手動複製貼上,不僅耗時,還容易打斷學習節奏。
今天我們要來聊聊如何透過 Python 自動化腳本結合 LLM(大型語言模型),自動爬取指定網站內容、抽取核心重點,並自動輸入到我們的知識庫中!
一、自動化知識擷取的架構設計
一個完整的知識擷取流水線(Pipeline)主要包含三個階段:
資料抓取 (Fetch): 使用 Python 爬蟲(如 BeautifulSoup 或 Playwright)取得目標網頁的 HTML 內文。
內容解析與摘要 (Parse & Summarize): 將清洗後的文本送給 AI API(如 Gemini / OpenAI),提煉出關鍵字、摘要與結構化筆記。
寫入知識庫 (Store): 將產出的 Markdown 格式內容自動儲存至 Local Markdown 資料夾或 Notion/Obsidian。
二、實戰範例:Python + Gemini API 抓取並生成摘要
以下為簡易的實作範例腳本,能幫你快速將一篇文章轉化為標準 Markdown 筆記:
Python
import requests
from bs4 import BeautifulSoup
import google.generativeai as genai
def fetch_article(url):
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
# 抓取主要內文 (依目標網站結構調整)
paragraphs = soup.find_all('p')
content = "\n".join([p.get_text() for p in paragraphs])
return content
def summarize_text(content):
genai.configure(api_key="YOUR_GEMINI_API_KEY")
model = genai.GenerativeModel('gemini-1.5-flash')
prompt = f"""
你是一個專業的 IT 技術筆記助理。請針對以下文章內容進行整理:
1. 用 3 句話總結核心重點。
2. 列出 3-5 個關鍵技術概念與解釋。
3. 輸出為乾淨的 Markdown 格式。
文章內容:
{content[:4000]} # 限制長度
"""
response = model.generate_content(prompt)
return response.text
if name == "main":
url = "https://example.com/tech-article"
text = fetch_article(url)
summary = summarize_text(text)
with open("tech_note_day5.md", "w", encoding="utf-8") as f:
f.write(summary)
print("筆記已成功自動生成並儲存!")
三、打造自動化工作流的小技巧
過慮無用資訊: 在將文本送入 AI 前,先過濾掉網頁的 Header、Footer、廣告等雜訊,能顯著提升 AI 摘要品質並節省 Token。
統一 Tag 與 Frontmatter: 可以在 Prompt 中要求 AI 自動生成 YAML Frontmatter(如 tags, date, category),方便後續搜尋與關聯。
定時任務 (Cron Job): 配合 Cron 或 GitHub Actions,設定每天固定時間自動抓取訂閱的 RSS 或技術部落格。
結語
打造高效 IT 知識庫的核心在於「減少摩擦力」。透過自動化擷取工具,我們能將有限的精力專注在「理解」與「實踐」上,而不是重複的資料搬運作業。
明天(Day 6),我們將進一步探討「如何利用 RAG (檢索增強生成) 技術,讓 AI 針對自己的筆記庫進行精準問答」,敬請期待!