iT邦幫忙

2026 iThome 鐵人賽

DAY 13
0
AI 自動化

30 天 AI 自動化實戰:用 n8n、FastAPI 與 Gemini 打造 AI 知識管家系列 第 13

Day 13 | Web Automation:把網頁自動變成 AI 可以讀的文字

  • 分享至 

  • xImage
  •  

我們的系統現在已經可以認出「使用者傳了一個網址」過來。但是,AI 是沒辦法直接「點擊」網址的。
如果我們直接讓 n8n 把網頁的 HTML 原始碼全部抓下來,直接塞給 Gemini,會發生幾個致命問題:

  1. Token 浪費:HTML 充滿了 <div><script>、CSS 樣式表等無意義的標籤。
  2. 雜訊太多:網頁裡通常包含導覽列、側邊欄廣告與頁尾。這些與文章正文毫無關聯的內容,會嚴重干擾 AI 抓取重點的能力。

為了精準抓取網頁的正文,我們不從頭寫複雜的正則表達式,而是使用 Python 中極為強大的文字萃取套件 trafilatura

第一步:安裝套件
請打開終端機,在你的虛擬環境中安裝套件:

pip install trafilatura

第二步:新增 FastAPI 端點 /extract-web
打開 main.py,新增一個專門用來處理 URL 的 endpoint。這個端點會負責下載網頁、過濾掉廣告與導覽列,只回傳乾淨的文章內容。

import trafilatura

class URLRequest(BaseModel):
    url: str

@app.post("/extract-web")
def extract_web(data: URLRequest):
    try:
        downloaded = trafilatura.fetch_url(data.url)
        if not downloaded:
            raise HTTPException(status_code=400, detail="無法下載網頁內容")
        
        text = trafilatura.extract(downloaded)
        if not text:
            raise HTTPException(status_code=400, detail="無法萃取網頁正文")
            
        return {
            "status": "success",
            "text": text 
        }
    except Exception as e:
        raise HTTPException(status_code=500, detail=str(e))

第三步:在 n8n 串接 Web 通道
1.新增 HTTP Request 節點:
從 Switch 節點的 Output 1 (Web) 拉出一條線,新增一個 HTTP Request 節點。
https://ithelp.ithome.com.tw/upload/images/20260920/20183341tQEs27HOlT.png
將這個新增的節點如上圖設定好。

  1. 將乾淨文字送給 AI 摘要:
    將送給AI的節點接在我們新增的 HTTP Request 節點後面,注意此時最後一個節點的 body 格式要是 {{$json.text}}

點擊 Webhook 的 Listen,在終端機發送一則包含真實網址的測試(例如維基百科或 iThome 新聞連結)。你會看到 n8n 成功走到通道 1,先去 FastAPI 爬出純文字,接著立刻送給 Gemini 產出完美的 JSON 結構化摘要!真實網址要是 HTML 式的靜態網址,不能是需要登入的社群網站裡的貼文,社群網站內的貼文只能抓到 JavaScript 空殼,找不到任何真正的文章內容。
https://ithelp.ithome.com.tw/upload/images/20260920/20183341qswYEF8z9G.png


上一篇
Day 12 | Router:不是每個 Decision 都需要 AI
下一篇
Day 14 | Video Automation:YouTube 如何自動變成知識?
系列文
30 天 AI 自動化實戰:用 n8n、FastAPI 與 Gemini 打造 AI 知識管家16
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言