哈希技術部落格


Slider

使用python查詢天氣

我們使用手機時,如果想知道溫度與天氣的狀態,可以很方便的在通知列中就看見天氣與溫度的資料。但你知道,如何透過程式找到這些氣象的資訊嗎?

今天,我們會分享如何使用python,獲取氣象的資料哦

提供氣象資料的網站

我們使用者會透過網站呈現的內容閱讀天氣資訊,而程式沒有眼睛,該如何閱讀資訊呢?
我們可以透過「爬蟲」,把網站上的資訊擷取下來,而有些網站,會直接提供資料給你寫的程式使用,也就是提供「API」。以下是幾個有提供API的熱門天氣網站

OpenWeatherMap


Weatherbit

AccuWeather

Yahoo Weather

使用Yahoo Weather API

接下來,我們以大家耳熟能詳的Yahoo天氣來介紹,如何使用python查詢Yahoo天氣。
首先,進到Yahoo開發者網站,可以看到所有Yahoo提供的API服務,我們選擇「天氣」。

接下來,我們先完成步驟一:建立自己的APP
建立時需要登入自己的Yahoo帳號,Yahoo帳號是免費的哦。

接下來,幫你的APP建立資訊。
名稱可以自己決定,以及「Redirect URI(s)」也是必填的,這部分我們暫時沒用到,可以暫時填入https:開頭的內容。

完成後,點擊「Create APP」。就可以建立自己的天氣查詢API囉。
接下來,點擊「應用程式」,就可以看見剛剛建立的APP,點進去後就可以看見API資訊,包含App ID、Client ID、Client Secret三項資訊,等一下我們會使用到這三項內容哦

開啟python,使用yahoo天氣模組

為了方便讓學生使用,我們可以透過模組,簡化程式的複雜度。在終端機介面中,透過pip語法安裝Yahoo天氣模組
語法: pip install yahoo-weather

接下來,可以參考以下範例程式,完成輸入城市名稱顯示氣象資訊的程式。
記得將App ID、Client ID、Client Secret的「xxxxx」替換成自己的資訊哦

from yahoo_weather.weather import YahooWeatherfrom yahoo_weather.config.units import Unit

data = YahooWeather(APP_ID=”xxxxx”, api_key=”xxxxxx”, api_secret=”xxxx”)

content = input(“請輸入城市名稱:”) data.get_yahoo_weather_by_city(content, Unit.celsius)

print(data.condition.text)
print(data.condition.temperature)

執行成果

城市名稱支援中文、英文…等不同語言的查詢哦!
你發現了嗎?原來我們經常看見的天氣資訊,你也可以透過簡單的python小程式完成哦!想想看還有哪些生活中常見的資訊,可以透過python實現呢?

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *