使用 Google Trends API 擷取搜尋趨勢並輸出 CSV 格式
一、教學目標
- 知識目標:理解 Google Trends 的功能及其透過 API 提供搜尋趨勢數據的機制。
- 技能目標:學會使用
pytrends
套件提取 LLM(大型語言模型)相關關鍵字的搜尋趨勢,並將資料輸出為 CSV 格式。
- 態度目標:培養對資料分析與趨勢研究的興趣,並認識其在商業與科技領域的應用價值。
二、前置準備
適用對象
- 對象:高中生、大學生或對資料分析、Python 與 AI 趨勢有興趣的初學者。
- 先備知識:基礎 Python 知識(套件安裝、資料處理)。
所需軟硬體
- 硬體:具備網路連線的電腦。
- 軟體:
- Python 3.x(建議搭配 Anaconda)。
- Python 套件:
pytrends
、pandas
。
- 文字編輯器(如 VS Code 或 Jupyter Notebook)。
- 其他:穩定的網路環境(Google Trends API 需要線上存取)。
教師準備
- 預先安裝
pytrends
並測試程式碼。
- 準備一份簡易安裝指南(PDF 或投影片)。
- 提供 LLM 相關背景資料(簡介 GPT-4、Llama 3 等模型)。
三、教學流程
時間分配:總計 90 分鐘
- 導入(10 分鐘)
- 環境設定與基本操作(20 分鐘)
- 搜尋趨勢數據實作(30 分鐘)
- 各國趨勢數據實作(20 分鐘)
- 總結與討論(10 分鐘)
1. 導入(10 分鐘)
活動:情境引導
- 教師提問:
「你知道現在最熱門的 AI 模型是什麼嗎?如何用數據證明它的熱度?」
- 簡介 Google Trends:
- 什麼是 Google Trends?(免費工具,顯示關鍵字搜尋熱度)。
- 介紹
pytrends
套件如何透過 API 提取資料。
- 目標導引:
「今天我們將學習如何用 Python 抓取 LLM(如 GPT-4、Claude 3)的搜尋趨勢,並存成 CSV,幫助你分析 AI 熱度!」
2. 環境設定與基本操作(20 分鐘)
講解(10 分鐘)
- 安裝
pytrends
:
- 展示指令:
- 檢查安裝:
import pytrends
(無錯誤即成功)。
- 基本概念:
TrendReq
:初始化 Google Trends API。
- 參數說明:
timeframe
(時間範圍)、geo
(地區)。
實作活動(10 分鐘)
- 學生任務:
- 安裝
pytrends
。
- 測試簡單程式碼:
from pytrends.request import TrendReq
pytrends = TrendReq(hl="en-US", tz=360)
print("成功連接到 Google Trends API!")
3. 搜尋趨勢數據實作(30 分鐘)
講解(10 分鐘)
- 程式碼說明:
build_payload
:設定關鍵字與搜尋條件。
interest_over_time()
:獲取時間序列數據。
to_csv()
:輸出為 CSV。
- 展示範例:以 LLM 關鍵字(如 GPT-4)展示結果。
實作活動(20 分鐘)
- 學生任務:
- 執行以下程式碼,獲取近 30 天 LLM 搜尋趨勢:
from pytrends.request import TrendReq
import pandas as pd
# 初始化 API
pytrends = TrendReq(hl="en-US", tz=360)
# 定義關鍵字
keywords = ["GPT-4", "Llama 3", "Gemini AI", "Claude 3", "Mistral AI"]
# 設定搜尋條件
pytrends.build_payload(kw_list=keywords, timeframe="now 30-d", geo="US")
# 獲取趨勢數據
trend_data = pytrends.interest_over_time()
trend_data = trend_data.drop(columns=["isPartial"])
# 輸出 CSV
csv_filename = "llm_trends.csv"
trend_data.to_csv(csv_filename)
print(f"已成功儲存 LLM 搜尋趨勢數據至 {csv_filename}")
print(trend_data.head())
- 修改
geo="US"
為 "TW"
(台灣)或 ""
(全球),重新運行並比較結果。
- 成果檢查:打開
llm_trends.csv
,確認包含日期與關鍵字搜尋熱度。
4. 各國趨勢數據實作(20 分鐘)
講解(10 分鐘)
- 介紹
interest_by_region()
:
- 用途:比較不同地區的搜尋熱度。
- 數據結構:以國家為單位顯示熱度。
- 展示範例:顯示 LLM 在美國與台灣的搜尋差異。
實作活動(10 分鐘)
- 學生任務:
- 執行以下程式碼,獲取各國 LLM 搜尋趨勢:
# 取得各國趨勢數據
region_trends = pytrends.interest_by_region()
# 輸出 CSV
csv_filename = "llm_trends_by_country.csv"
region_trends.to_csv(csv_filename)
print(f"已成功儲存各國 LLM 搜尋趨勢數據至 {csv_filename}")
print(region_trends.head())
- 檢查
llm_trends_by_country.csv
,找出搜尋熱度前 5 名的國家。
- 成果檢查:確認 CSV 包含國家名稱與各關鍵字的熱度。
5. 總結與討論(10 分鐘)
- 教師總結:
interest_over_time()
適合分析時間趨勢。
interest_by_region()
適合比較地區差異。
- 數據用途:市場分析、SEO、技術趨勢研究。
- 學生討論:
- 「哪個 LLM 在你選擇的地區最熱門?為什麼?」
- 「這些數據能用來解決什麼實際問題?」
四、評量方式
- 實作成果(70%):
- 成功生成
llm_trends.csv
(時間趨勢)。
- 成功生成
llm_trends_by_country.csv
(地區趨勢)。
- 參與討論(30%):
五、延伸應用
- 進階挑戰:
- 修改
keywords
,加入其他 AI 技術(如 “Quantum Computing”)。
- 使用
timeframe="2023-01-01 2023-12-31"
,分析 2023 全年趨勢。
- 將 CSV 匯入 Excel 或 Tableau,製作視覺化圖表。
- 實務專案:
- 分析不同國家的 AI 教育熱度(如搜尋 “AI Course”)。
- 研究某產品(如 “ChatGPT”)的全球市場接受度。
六、教學資源
- 參考連結:
- 附件:
- 程式碼檔案(
.py
格式)。
- LLM 背景簡介(PDF)。