請啟用 JavaScript 來查看內容

《PUI PUI 天竺鼠車車》簡單趨勢分析,同場加映:Python 爬取 Google 每日搜尋趨勢

    前言

    小孩才看鬼滅之刃,大人都看天竺鼠車車!!
    最近《PUI PUI 天竺鼠車車》超紅🔥🔥🔥,算是繼鬼滅之刃後下一個爆紅的動畫作品,不曉得你上車了嗎?

    本篇文章第一部分會介紹這部爆紅的作品《PUI PUI 天竺鼠車車》,接下來將簡單帶大家來看天竺鼠車車在台灣的趨勢,最後還會有 Python 爬取 "Google 每日搜尋趨勢" 的講解與教學,千萬不要錯過!!

    《PUI PUI 天竺鼠車車》 圖片來源:PUI PUI 天竺鼠車車 官方網站
    《PUI PUI 天竺鼠車車》 圖片來源:PUI PUI 天竺鼠車車 官方網站


    🐹《天竺鼠車車》介紹

    天竺鼠車車全名《PUI PUI 天竺鼠車車》,為日本原創採用羊毛氈製作的電視定格動畫,"PUI PUI"是代表天竺鼠真實的叫聲,每話片長非常短只有 2 分 40 秒,而且是沒有對話或旁白的。
    (原本是做給兒童看的,沒想到在大人間爆紅🤣)

    引用 Muse木棉花-TW 內簡介

    故事舞臺發生在一個天竺鼠變成車子的世界。 療癒系的車“天竺鼠車車”。圓滾滾的眼睛和又大又圓的屁股,短短的手腳。常常一臉傻乎乎地四處奔波的天竺鼠車車。
    即使塞車了,只要看著前面的天竺鼠車車的屁股就能被療癒,就算製造了一些麻煩,因為毛茸茸太可愛了也能原諒吧?!
    以汽車各式各樣的情境為中心的療癒、友情、冒險、亂七八糟的動作戲以及超多天竺鼠的動畫!

    引用 巴哈姆特動畫瘋 內簡介

    《PUI PUI 天竺鼠車車》是以羊毛氈天竺鼠來創作的偶動畫,如果將車子通通「擬豬化」,這個世界會變得如何呢?
    以天竺鼠作為交通工具的世界觀,發展出一連串療癒、友情與冒險的故事。變成車子的天竺鼠,還是保有豬豬的個性,會排隊行動,容易驚嚇,又因為貪吃而爭先恐後引發大騷動,只差沒有黑豆噴射攻擊了!而且用羊毛氈表現的天竺鼠表情,實在是很寫實逗趣啊!
    動畫監督見里朝希,以偶動畫創作獲得多項國際大獎,劇名裡的「PUI PUI」就是天竺鼠的叫聲。

    《PUI PUI 天竺鼠車車》 圖片來源:Muse木棉花 FB粉專
    《PUI PUI 天竺鼠車車》 圖片來源:Muse木棉花 FB粉專

    如還你沒看過、想要觀看,歡迎至以下正版平台收看。
    (1/5(二) 起,每週二 07:35 與日同步更新)

    題外話,之前看到一篇文章訪問、講解為何木棉花代理動畫卻免費放送,因盜版猖獗,有許多非常途徑可以看到動畫,因此木棉花轉變觀念,希望由動漫帶動後面周邊商品開發、授權聯名等營業項目。
    有興趣的朋友可以過去看看:《鬼滅》《天竺鼠車車》幕後推手!代理動畫卻免費放送,木棉花在想什麼?

    🐹《天竺鼠車車》在台灣的 Google 搜尋趨勢

    Google 趨勢探索頁面,我將 "天竺鼠" 與 "天竺鼠車車" 關鍵字輸入,一同觀看《天竺鼠車車》從 2021 年 1 月 5 日開播以來的搜尋趨勢變化,這邊關鍵字我輸入 "天竺鼠" 和 "天竺鼠車車" 兩個,因為可能很多人搜尋不會將全名打出來。
    並且我將前五話的播出時間點標記出來,方便對照觀察。

    "天竺鼠" 搜尋趨勢 2021/01/01~2021/02/05
    "天竺鼠" 搜尋趨勢 2021/01/01~2021/02/05

    明顯看出一開始並沒有造成話題,但在 1/20 達到顛峰,也就是在星期二(1/19) 第 03 話播出後的隔天最多人搜尋,仔細想想大部分的人聽到、知道這部動畫應該也是差不多那個時候,而且如果去搜尋天竺鼠車車相關文章與影片(討論、分析),會發現許多都是在第 03 話附近的時間點發文的。
    然後在後續第 04 話、第 05 話播出當天,搜尋量也有小幅提升。



    接下來看看 Google 每日搜尋趨勢,尋找 "天竺鼠車車" 是否有登上哪一天的台灣搜尋排行榜。

    我簡單使用 Python 來爬取每一天的 Google 每日搜尋趨勢(後面會再說明該如何做到),發現到從開播以來只有 1/19 當天上榜,直接衝上第二名,在台灣的搜尋量達到 10 萬多筆。

    "天竺鼠車車" Google 每日搜尋趨勢
    "天竺鼠車車" Google 每日搜尋趨勢

    我來稍微說明一下,可能看到"探索"圖表我輸入的關鍵字有人會感到疑惑,為何是輸入"天竺鼠 車 車"而不是"天竺鼠車車",中間幹嘛要加入空格呢?
    這邊是經過嘗試並參考以下文章內提到 Google Trends 中文分詞的 bug,所以修正關鍵字的。
    揭密 Google Trends 正確使用方式:為何 90% 人都用錯 Google Trends?|Google Trends 教學

    🐹爬取 "Google 每日搜尋趨勢"

    這邊要注意,底下的教學是爬取 "每日搜尋趨勢",而不是可以自行輸入關鍵字的 "探索"
    "探索" 功能之後有機會會再寫一篇文章來介紹,想看的麻煩在本文章底下、巴哈姆特FB粉專留言讓我知道~

    Google "每日搜尋趨勢" 與 "探索"
    Google "每日搜尋趨勢" 與 "探索"

    尋找爬取方法

    首先進到 "Google 每日搜尋趨勢" 網頁,上方可以選擇國家,底下是依照每天使用者在 Google 搜尋量來排名。

    當我們把網頁滾到最下面,發現到有 "載入更多" 的按鈕,我們可以猜測網頁是否使用 JavaScript 來動態載入更多資料。
    打開瀏覽器的"開發人員工具(F12)",並切換到 "Network" > "XHR" 頁面,滑鼠點擊"載入更多"按鈕。

    "開發人員工具(F12)" > "Network" > "XHR"
    "開發人員工具(F12)" > "Network" > "XHR"

    可以發現確實網頁有新資料顯示,"XHR" 頁面也有一個 GET 請求。

    點擊"載入更多"後會載入更多資料
    點擊"載入更多"後會載入更多資料

    滑鼠對它點擊,切到 "Preview" 稍微觀察一下資料。
    沒錯!!這就是我們想要抓取的資料。

    "Preview" 頁面
    "Preview" 頁面

    在 "Headers" 的地方可以找到請求的網址與方法:

    "Headers" 有請求的網址與方法
    "Headers" 有請求的網址與方法

    Request URL: https://trends.google.com.tw/trends/api/dailytrends?hl=zh-TW&tz=-480&ed=20210203&geo=TW&ns=15
    Request Method: GET
    

    從請求網址後方可以發現它有帶五個傳遞參數(網址?後方),分別如下:

    hl: zh-TW
    tz: -480
    ed: 20210206
    geo: TW
    ns: 15
    
    • hl 代表語言,台灣的繁體中文是zh-TW。其他語言可以藉由切換網頁上的語言來查看送出的請求他帶什麼數值,或參考此網頁列表
    • tz 代表時區偏移量,單位是分鐘,因此台灣時區是 +8 也就是 8*60=480,然後負的代表我們時間要減 480 分鐘才會等於格林威治標準時間。
    • geo 代表國家縮寫,例如台灣是TW、美國是US
    • ed 代表查詢的日期,採"年年年年月月日日"的方式排列,像是 "20200520"、"20210207"。
    • ns 目前尚未查到它代表什麼意思。

    而收到的資料中,最前方第一行有段干擾的文字「)]}',\n」,後方才是正確的 json 格式資料。

    "Response" 頁面可察看回應資料
    "Response" 頁面可察看回應資料

    裡頭的資料跟你在網頁會看到的差不多,關鍵字、搜尋量、相關新聞、相關查詢、圖片連結、關鍵字探索連結等等。

    Python 範例程式

    接下來,我們將以上流程寫成 Python 程式,以下示範請求 2021/02/01 當天台灣的 Google 每日搜尋趨勢:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    
    import json
    import requests
    
    
    HEADERS = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.92 Safari/537.36'}
    
    date_str = '20210201'
    
    url = f'https://trends.google.com.tw/trends/api/dailytrends?hl=zh-TW&geo=TW&tz=-480&ns=15&ed={date_str}'
    r = requests.get(url, headers=HEADERS)
    if r.status_code == requests.codes.ok:
        data = r.text.lstrip(")]}',\n")
    
        data_json = json.loads(data)
        trends = data_json['default']['trendingSearchesDays'][0]
        print(trends)
    else:
        print(f'請求失敗:{r.status_code}')
    

    而經過測試,Google 每日搜尋趨勢最多提供最近 30 天的資料,每天最多前 20 個熱門關鍵字,好像當天關鍵字搜尋量不到 2000+ 就不會排出來,所以有些天數的熱門關鍵字不到 20 個。


    如果你想使用迴圈來一次爬取好幾個日期,可以參考以下方式來取得一段日期列表,再執行迴圈來請求:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    
    from datetime import date, timedelta
    
    base_date = date.today()
    days_num = 3
    
    date_list = [base_date - timedelta(days=x) for x in range(days_num)]
    # ['20210206', '20210205', '20210204']
    
    for date_ in date_list:
        date_str = date_.strftime("%Y%m%d")
        # ...
    

    * 記得多次請求之間要加入一點延遲,才不會被擋ㄛ~


    結語

    如果你還沒看過《PUI PUI 天竺鼠車車》的話,趕緊去各正版平台觀看,反正每話也才不到 3 分鐘,一下子就看完了🤣

    最後提醒,在飼養動物都要了解其習性,並評估自身及經濟狀況,不要因為一時熱潮而衝動購買,要尊重生命。





    參考:
    PUI PUI 天竺鼠車車 官方網站
    Muse木棉花 YouTube 官方頻道
    巴哈姆特動畫瘋


    PUI~PUI~PUI~PUI~PUI~PUI~PUI~PUI~PUI~

    —— 天竺鼠


    🔻 如果覺得喜歡,歡迎在下方獎勵我 5 個讚~
    分享

    Jia
    作者
    Jia
    軟體工程師 - Software Engineer