【n8n超入門教學】n8n x AI Agent x LINE Messaging 打造個人行動助理 最終篇 - 每日新聞流程 & 總結

【n8n超入門教學】n8n x AI Agent x LINE Messaging 打造個人行動助理 最終篇 - 每日新聞流程 & 總結

N8N 行動助理最終集:每日自動推播新聞+全功能 Demo

終於來到本系列的最後一集,今天要完成「每日自動推播新聞」的自動化流程,並 Demo 之前做過的所有功能。這一集會讓你看到 N8N 的彈性與威力!

每日自動推播新聞到 LINE

  1. 定時觸發
    用「Schedule Trigger」節點,設定每天早上 9 點自動執行。
  2. 抓取新聞原始碼
    用「HTTP Request」節點,連到 TVBS News 生活新聞頁,取得網頁原始碼。
  3. 解析新聞內容
    用「Code」節點(支援 Python),寫程式解析原始碼,抓出新聞標題與連結。
    (即使不會寫 Python,也能照著影片或範例程式碼複製貼上)
  4. 推播到 LINE
    複製之前的 LINE 節點,將 API URL 改成 broadcast(主動推播),把剛剛解析好的新聞內容(news_string)填入 Text 欄位。
  5. 測試與驗證
    可以手動觸發流程測試,確認 LINE 對話窗能收到新聞,連結也能正確點擊。

全功能 Demo

  • 查天氣:「幫我查台北天氣」→ AI 助理自動查詢 OpenWeatherMap,回覆天氣資訊。
  • 自動記帳:「買咖啡100元」→ AI 助理自動記錄到 Google Sheets。
  • 建立行事曆活動:「明天早上有重要會議九到十點」→ AI 助理自動建立 Google Calendar 活動。
  • 每日新聞推播:每天早上自動收到 TVBS 生活新聞。

小結

這一集展示了 N8N 的彈性:
只要幾個節點,就能完成生活中常見的自動化需求。
你可以根據自己的 Daily Routine,設計更多自動化流程,讓 AI 幫你省下寶貴時間。


Code Node

import html.parser
import json
import re

class NewsHTMLParser(html.parser.HTMLParser):
  def __init__(self):
    super().__init__()
    self.in_nu_news = False
    self.in_list = False
    self.in_ul = False
    self.in_li = False
    self.in_a = False
    self.current_href = ""
    self.current_title = ""
    self.news_items = []
    self.div_stack = []
    
  def handle_starttag(self, tag, attrs):
    attrs_dict = dict(attrs)
    
    if tag == 'div':
      self.div_stack.append(attrs_dict.get('class', ''))
      if attrs_dict.get('class') == 'nu_news':
        self.in_nu_news = True
      elif self.in_nu_news and attrs_dict.get('class') == 'list':
        self.in_list = True
        
    elif tag == 'ul' and self.in_list:
      self.in_ul = True
      
    elif tag == 'li' and self.in_ul:
      self.in_li = True
      
    elif tag == 'a' and self.in_li:
      self.in_a = True
      self.current_href = attrs_dict.get('href', '')
      self.current_title = ""

  def handle_endtag(self, tag):
    if tag == 'div':
      if self.div_stack:
        class_name = self.div_stack.pop()
        if class_name == 'nu_news':
          self.in_nu_news = False
        elif class_name == 'list':
          self.in_list = False
          
    elif tag == 'ul':
      self.in_ul = False
      
    elif tag == 'li':
      self.in_li = False
      
    elif tag == 'a' and self.in_a:
      self.in_a = False
      if self.current_title.strip() and self.current_href:
        self.news_items.append({
          'title': self.current_title.strip(),
          'href': self.current_href
        })

  def handle_data(self, data):
    if self.in_a:
      self.current_title += data

# 解析輸入的 HTML 內容
html_content = _input.first().json.data

# 創建解析器並解析 HTML
parser = NewsHTMLParser()
parser.feed(html_content)

# 初始化輸出行列表
output_lines = ["新聞列表:"]

# 處理解析結果
for i, item in enumerate(parser.news_items, 1):
  title = item['title']
  url = "https://news.tvbs.com.tw" + item['href']
  
  # 加入格式化的新聞資訊
  output_lines.append(f"{i}. {title}")
  output_lines.append(f"   連結:{url}")
  output_lines.append("")  # 加入空行

# 合併所有行成為最終輸出字串
formatted_string = " ".join(output_lines)

# 返回結果
return [
  {"news_string": formatted_string}
]

Code Node (Deprecated, DO NOT USE IT)

from bs4 import BeautifulSoup
import pandas as pd
import json

# 解析輸入的 HTML 內容
html = _input.first().json.data
soup = BeautifulSoup(html, 'html.parser')

# 初始化輸出行列表
output_lines = ["新聞列表:"]

# 找尋主要新聞容器 (class 為 "news_now2" 的 div)
news_now2 = soup.find('div', class_='news_now2')

if news_now2:
    # 找尋新聞列表容器
    list_container = news_now2.find('div', class_='list')

    # 確認找到列表容器且包含 ul 元素
    if list_container and list_container.find('ul'):
        # 遍歷所有新聞項目,只取前10篇
        for i, li in enumerate(list_container.find('ul').find_all('li'), 1):
            if i > 10:
                break
            # 提取每則新聞的連結元素
            link = li.find('a')
            if link:
                # 取得標題和網址
                title = link.text.strip()
                url = "https://news.tvbs.com.tw" + link.get('href', '')

                # 加入格式化的新聞資訊
                output_lines.append(f"{i}. {title}")
                output_lines.append(f"   連結:{url}")
                output_lines.append("")  # 加入空行

# 合併所有行成為最終輸出字串
formatted_string = " ".join(output_lines)

# 返回結果
return [
    {"news_string": formatted_string}
]

System Message

你是一位個人的行動助理,你的職責是協助使用者處理日常事務。必須使用以下工具來完成任務:

可用工具
* Open Weather Map: 用於查詢天氣資訊。當使用者需要了解特定地點的天氣狀況時,請調用此工具。
* Accounting Tool: 用於記錄使用者的收支。當使用者要求記帳時,必須調用此工具。使用者需要提供花費的描述和金額。日期時間會自動記錄為當前日期 (YYYY/MM/DD)。當前日期時間為 {{ $json.currentDate }}。
Accounting Tool 輸入範例:
日期時間: 2025/04/29
花費描述: 買酒
金額: 100
* Google Calendar: 用於建立行事曆事件。當使用者需要安排行程或建立提醒時,請調用此工具。事件的摘要 (Summary) 是必填欄位。當前日期時間為 {{ $json.currentDate }}。

Read more

【n8n實戰教學】雲端自架n8n串接Google應用程式 - Google Sheet / Gmail / Google Calendar

【n8n實戰教學】雲端自架n8n串接Google應用程式 - Google Sheet / Gmail / Google Calendar

在自動化工作流程中,Google 的各項服務扮演著重要角色。今天要介紹如何透過自架的 N8n 來串接 Google 的應用程式,包括 Google Sheets、Calendar 等服務。雖然這個過程比官方的串接方式稍微複雜一點,但跟著以下步驟,相信大家都能輕鬆完成! 前置準備 1. 一個全新的 Google 帳號 2. 自架的 N8n 環境 3. 耐心(因為設定步驟較多) 設定 Google Cloud Platform (GCP) 1. 建立專案 * 前往 Google Cloud Platform * 點擊「選取專案」→「新增專案」 * 專案命名(例如:N8N Cloud) * 等待專案建立完成 2. 啟用必要的 API

By Tung Li
【n8n實戰教學】打造旅遊翻譯小幫手 - AI 圖片解析延伸應用 3

【n8n實戰教學】打造旅遊翻譯小幫手 - AI 圖片解析延伸應用 3

剛從東京回來,想跟大家分享一個在日本自由行時超實用的小工具 - LINE 翻譯助理。這是我把之前介紹的穿搭大師流程稍作修改後的應用,讓旅途中遇到看不懂的日文不再是困擾! 工具特色 這個翻譯助理的運作方式很簡單: * 只要在 LINE 上傳看不懂的日文照片 * 系統會自動將照片傳給 AI 翻譯助理 * 很快就能收到詳細的中文翻譯說明 實際使用案例中,我測試了兩種情境: 1. 客運站牌車票:成功辨識出 17 號是指乘車處編號,還貼心提供了注意事項的翻譯 2. 神社抽籤:完整翻譯出抽到小吉的含義與各項運勢說明 技術優化小撇步 為了讓系統運作更順暢,我還加入了圖片壓縮的功能: * 在傳給 AI 前先將圖片壓縮 * 將圖片尺寸控制在 500x500 以內 * 大幅降低檔案大小(測試案例從 353KB 壓縮到 44.3KB) * 同時確保圖片品質足以讓 AI 正確辨識文字 為什麼選擇 LINE 而不是直接用 ChatGPT? 很多人可能會問:

By Tung Li
【n8n實戰教學】穿搭大師-打造穿搭助理 - Line Messaging API 整合 2

【n8n實戰教學】穿搭大師-打造穿搭助理 - Line Messaging API 整合 2

用 n8n 串接 LINE,讓穿搭大師 AI 直接在 LINE 上幫你評論穿搭! 嗨大家好,我是東! 上一集我們已經用 n8n chat trigger 預設的聊天室,把圖片傳給穿搭大師,並且在聊天室裡拿到 AI 的評論。這一集,我們要挑戰更進階的玩法——直接用 LINE 把圖片傳給 n8n 裡的穿搭大師,然後在 LINE 上收到回覆! LINE 串接 n8n 的基本流程 首先,來複習一下 n8n 串接 LINE 的基本流程。當我們在 LINE 傳訊息(像是 HiHi),LINE 會透過 Webhook 把訊息傳給 n8n。

By Tung Li
【n8n實戰教學】穿搭大師-打造穿搭助理 - Chat Trigger 應用與 AI 圖片解析 1

【n8n實戰教學】穿搭大師-打造穿搭助理 - Chat Trigger 應用與 AI 圖片解析 1

用 AI 穿搭大師,讓你出國穿搭不再煩惱! 嗨大家好,我是東! 今天要來跟大家分享一個超實用又有趣的主題——「穿搭大師」AI 工作流。這個靈感其實來自我下個月要去東京旅遊,想到日本人都超會穿搭,自己如果穿得不夠好看,會不會被笑呢?所以我決定打造一個專屬的穿搭助理,幫我即時評分、給建議,讓我在東京也能自信滿滿! 穿搭大師是什麼? 簡單來說,就是一個能根據你上傳的穿搭照片,給你專業評論和建議的 AI 助理。它不只會看配色、款式、風格,還會考慮場合適宜性和個人特色,最後還會給你 1-10 分的評分。這樣一來,無論是日常穿搭還是出國旅行,都能有個「時尚顧問」隨時陪伴。 流程怎麼跑? 1. 先準備好你的穿搭照片,直接丟給穿搭大師。 2. AI 會根據照片,給你評論、建議,最後還有分數。 3. 你可以在逛服飾店時,直接在更衣室拍照上傳,馬上收到回饋。

By Tung Li