把 RSS 安全新聞 拉進 N8N,做為整個系統的第一個輸入模組,建立資訊收集的起點。
「RSS 安全新聞」模組的角色:
過濾時間方式一樣,複製貼到另一個即可
HuggingFace 不能接Discord,之後用其他方式發送
過濾時間
過濾關鍵字"資安", "漏洞", "攻擊", "駭客", "惡意程式", "勒索", "CVE", "APT", "零日"
https://www.ithome.com.tw/rss
只過濾時間(因為很久沒資料,把時間拉長一點確認程式可運作)
https://www.exploit-db.com/rss.xml
from datetime import datetime, timedelta, timezone
import email.utils
output = []
# 現在 UTC,帶時區
now = datetime.now(timezone.utc)
time_threshold = now - timedelta(hours=3600)
for item in items:
data = item.get("json", {})
pubDate = data.get("pubDate", "")
pub_dt = None
# 嘗試 ISO 格式 "YYYY-MM-DD HH:MM:SS" (假設為 UTC)
try:
pub_dt = datetime.strptime(pubDate, "%Y-%m-%d %H:%M:%S")
pub_dt = pub_dt.replace(tzinfo=timezone.utc) # 轉成 offset-aware
except Exception:
pass
# 嘗試 RSS 格式 "Tue, 26 Aug 2025 00:00:00 +0000"
if pub_dt is None:
try:
pub_dt = email.utils.parsedate_to_datetime(pubDate) # 已經是 offset-aware
except Exception:
continue
# 篩選 8 小時內
if pub_dt >= time_threshold:
output.append({"json": data})
return output
output = []
# 資安關鍵字
keywords = ["資安", "漏洞", "攻擊", "駭客", "惡意程式", "勒索", "CVE", "APT", "零日"]
for item in items:
data = item.get("json", {})
title = data.get("title", "")
content = data.get("content", "")
text = f"{title} {content}"
if any(kw in text for kw in keywords):
output.append({"json": data})
return output