Python 爬取天氣預報
參考來源 https://steam.oxxostudio.tw/category/python/spider/forecast.html
import requests
# url = '一般天氣預報 - 今明 36 小時天氣預報 JSON 連結'
url = "https://opendata.cwb.gov.tw/fileapi/v1/opendataapi/F-C0032-001?Authorization=rdec-key-123-45678-011121314&format=JSON"
data = requests.get(url) # 取得 JSON 檔案的內容為文字
data_json = data.json() # 轉換成 JSON 格式
location = data_json['cwbopendata']['dataset']['location']
for i in location:
city = i['locationName'] # 縣市名稱
wx8 = i['weatherElement'][0]['time'][0]['parameter']['parameterName'] # 天氣現象
maxt8 = i['weatherElement'][1]['time'][0]['parameter']['parameterName'] # 最高溫
mint8 = i['weatherElement'][2]['time'][0]['parameter']['parameterName'] # 最低溫
ci8 = i['weatherElement'][3]['time'][0]['parameter']['parameterName'] # 舒適度
pop8 = i['weatherElement'][4]['time'][0]['parameter']['parameterName'] # 降雨機率
print(f'{city}未來 8 小時{wx8},最高溫 {maxt8} 度,最低溫 {mint8} 度,降雨機率 {pop8} %')
>>> %Run -c $EDITOR_CONTENT
臺北市未來 8 小時多雲短暫雨,最高溫 23 度,最低溫 20 度,降雨機率 30 %
新北市未來 8 小時多雲短暫雨,最高溫 24 度,最低溫 21 度,降雨機率 30 %
桃園市未來 8 小時多雲短暫雨,最高溫 23 度,最低溫 20 度,降雨機率 30 %
臺中市未來 8 小時多雲,最高溫 22 度,最低溫 20 度,降雨機率 10 %
臺南市未來 8 小時晴時多雲,最高溫 22 度,最低溫 20 度,降雨機率 10 %
高雄市未來 8 小時晴時多雲,最高溫 24 度,最低溫 23 度,降雨機率 10 %
基隆市未來 8 小時多雲短暫雨,最高溫 22 度,最低溫 20 度,降雨機率 40 %
新竹縣未來 8 小時晴時多雲,最高溫 22 度,最低溫 19 度,降雨機率 20 %
新竹市未來 8 小時晴時多雲,最高溫 20 度,最低溫 18 度,降雨機率 20 %
苗栗縣未來 8 小時多雲,最高溫 21 度,最低溫 19 度,降雨機率 20 %
彰化縣未來 8 小時多雲,最高溫 21 度,最低溫 19 度,降雨機率 10 %
南投縣未來 8 小時晴時多雲,最高溫 23 度,最低溫 21 度,降雨機率 10 %
雲林縣未來 8 小時多雲,最高溫 22 度,最低溫 20 度,降雨機率 10 %
嘉義縣未來 8 小時晴時多雲,最高溫 23 度,最低溫 20 度,降雨機率 10 %
嘉義市未來 8 小時晴時多雲,最高溫 24 度,最低溫 21 度,降雨機率 10 %
屏東縣未來 8 小時多雲,最高溫 26 度,最低溫 24 度,降雨機率 10 %
宜蘭縣未來 8 小時多雲短暫雨,最高溫 21 度,最低溫 19 度,降雨機率 60 %
花蓮縣未來 8 小時多雲短暫雨,最高溫 22 度,最低溫 20 度,降雨機率 70 %
臺東縣未來 8 小時陰短暫雨,最高溫 23 度,最低溫 21 度,降雨機率 40 %
澎湖縣未來 8 小時多雲,最高溫 19 度,最低溫 18 度,降雨機率 10 %
金門縣未來 8 小時陰短暫雨,最高溫 19 度,最低溫 17 度,降雨機率 60 %
連江縣未來 8 小時陰時多雲短暫雨,最高溫 15 度,最低溫 14 度,降雨機率 40 %
>>>
{
"locationName": "臺中市",
"weatherElement": [
{
"elementName": "Wx",
"time": [
{
"startTime": "2023-01-09T12:00:00+08:00",
"endTime": "2023-01-09T18:00:00+08:00",
"parameter": {
"parameterName": "多雲",
"parameterValue": "4"
}
},
{
"startTime": "2023-01-09T18:00:00+08:00",
"endTime": "2023-01-10T06:00:00+08:00",
"parameter": {
"parameterName": "多雲短暫雨",
"parameterValue": "8"
}
},
{
"startTime": "2023-01-10T06:00:00+08:00",
"endTime": "2023-01-10T18:00:00+08:00",
"parameter": {
"parameterName": "多雲時晴",
"parameterValue": "3"
}
}
]
},
{
"elementName": "MaxT",
"time": [
{
"startTime": "2023-01-09T12:00:00+08:00",
"endTime": "2023-01-09T18:00:00+08:00",
"parameter": {
"parameterName": "22",
"parameterUnit": "C"
}
},
{
"startTime": "2023-01-09T18:00:00+08:00",
"endTime": "2023-01-10T06:00:00+08:00",
"parameter": {
"parameterName": "20",
"parameterUnit": "C"
}
},
{
"startTime": "2023-01-10T06:00:00+08:00",
"endTime": "2023-01-10T18:00:00+08:00",
"parameter": {
"parameterName": "23",
"parameterUnit": "C"
}
}
]
},
{
"elementName": "MinT",
"time": [
{
"startTime": "2023-01-09T12:00:00+08:00",
"endTime": "2023-01-09T18:00:00+08:00",
"parameter": {
"parameterName": "20",
"parameterUnit": "C"
}
},
{
"startTime": "2023-01-09T18:00:00+08:00",
"endTime": "2023-01-10T06:00:00+08:00",
"parameter": {
"parameterName": "18",
"parameterUnit": "C"
}
},
{
"startTime": "2023-01-10T06:00:00+08:00",
"endTime": "2023-01-10T18:00:00+08:00",
"parameter": {
"parameterName": "18",
"parameterUnit": "C"
}
}
]
},
{
"elementName": "CI",
"time": [
{
"startTime": "2023-01-09T12:00:00+08:00",
"endTime": "2023-01-09T18:00:00+08:00",
"parameter": {
"parameterName": "稍有寒意至舒適"
}
},
{
"startTime": "2023-01-09T18:00:00+08:00",
"endTime": "2023-01-10T06:00:00+08:00",
"parameter": {
"parameterName": "稍有寒意"
}
},
{
"startTime": "2023-01-10T06:00:00+08:00",
"endTime": "2023-01-10T18:00:00+08:00",
"parameter": {
"parameterName": "稍有寒意至舒適"
}
}
]
},
{
"elementName": "PoP",
"time": [
{
"startTime": "2023-01-09T12:00:00+08:00",
"endTime": "2023-01-09T18:00:00+08:00",
"parameter": {
"parameterName": "10",
"parameterUnit": "百分比"
}
},
{
"startTime": "2023-01-09T18:00:00+08:00",
"endTime": "2023-01-10T06:00:00+08:00",
"parameter": {
"parameterName": "30",
"parameterUnit": "百分比"
}
},
{
"startTime": "2023-01-10T06:00:00+08:00",
"endTime": "2023-01-10T18:00:00+08:00",
"parameter": {
"parameterName": "20",
"parameterUnit": "百分比"
}
}
]
}
]
},
{
沒有留言:
張貼留言