在日常生活中,我們經常滑IG、Threads等社群平台時,總會看到許多好吃好玩的店家,想要把餐廳、咖啡廳或特色小店的資訊都蒐集起來,但手動整理很花時間。今天呢,就是要用 Firecrawl 爬取Threads網頁內容,透過 AI 整理文字,最後自動存到 Notion,打造完全自動化的探店資料庫。
💡Firecrawl是一個工具可以很輕鬆的抓取客戶端渲染的內容,且可以把爬取的內容變成適合讓AI讀取的資料(Markdown語法)
建立Manual Trigger 節點
前往Threads網頁,搜尋想要的內容後複製URL
前往firecrawl進行註冊,取得API
建立firecrawl節點 功能選用scrape a url and get its content
建立Gemini節點
專門分析Threads網頁Markdown內容的助理。使用者透過Firecrawl爬蟲取到的Threads網頁Markdown內容可能包含店名、地址、營業時間、評價、推薦餐點、其他雜訊。 你的任務是將內容整理成 JSON 格式,JSON 欄位包含:
- storeName: 店名(必填)
- address: 地址(如果有)
- hours: 營業時間(如果有)
- rating: 評價(如果有)
- recommend: 推薦餐點或特色(如果有)
- summary: 100 字以內的簡短摘要
⚠️ 輸出規則:
- 只能輸出 JSON,不能加任何文字或解釋
- 不要使用 markdown 格式 (不要加
```json 或 ```
)- 如果某個欄位沒有資訊,請回傳空字串 ""
建立code節點
// 取得 Gemini 節點輸出的文字
let text = $input.first().json.content.parts[0].text || "";
// 移除前後空白、markdown 區塊符號(若有)
text = text.trim().replace(/```json/g, "").replace(/```/g, "");
// 嘗試解析 JSON
let data;
try {
data = JSON.parse(text); // 轉成 JSON 陣列
} catch (e) {
// 解析失敗,回傳原始文字以供排錯
return [{ error: "JSON parse 失敗", raw: text }];
}
// 遍歷每筆資料,做簡單預設
data.forEach(item => {
item.storeName = item.storeName || "";
item.address = item.address || "";
item.hours = item.hours || "";
item.rating = item.rating || "";
item.recommend = item.recommend || "";
item.summary = item.summary || "";
});
// 回傳給下個節點(Notion)
return data;
前往Notion建立一個database,並設定好欄位(店名、地址、營業時間、評價、推薦餐點、備註)
建立Notion節點,功能選用Create a database page
透過今天的練習,成功建立了一個 從爬取網頁 → AI 整理 → 自動存入 Notion 的自動化流程。
https://youtu.be/w02WAdbwKj0?si=G-UI-SjRzzrBmK2I
https://www.firecrawl.dev/