# Python 爬取與存取空氣品質 PM2.5 AQI


Posted by 大學生 on 2020-10-22

2023 更快的做法是命令 ChatGPT 為 AI 程式導師
提問如何用 python 爬取 pm2.5,(或是使用 AutoGPT 設定明確目標執行爬蟲),接下來剩下來的時間思考如何應用在日常生活中,例如用折線圖呈現產出一天內空氣品質變化,結合 IFTTT 超過多少會提醒用戶之類的,並將資料搜集彙整顯示趨勢圖,以供後續研究。

2023-0826 更新:因工作緣故收到國家科學及技術委員會來函,配合本署組改為環境部,本署環境資料關放平臺、環境資源資料交換平臺及環境資源資料交換重構平臺自112年8月22日起變更網址及應用程式介面( Application ProgrammingInterface, API),各平臺API維持新、舊API URL平行服務三個月,請於112年11月22日期限前內完成 API URL 更新。


課堂作業:爬取空氣品質 PM2.5 的即時資訊
抓取政府資料開放平台 JSON 資料 並做檔案處理

實際案例應用:
新竹科學園區空氣品質監測網:
https://hspair.sipa.gov.tw/Hspairpeople/Default.aspx

結合 Google Chart 畫出趨勢圖


執行畫面:

獲得資料方式

  • JSON 格式:requests 獲取資料 python 直接解析

好用外掛工具 (chrome):

查看 Web API json 格式:
https://chrome.google.com/webstore/detail/jsonview/


資料格式 : JSON、CSV、XML

Web API(Web Application Programming Interface)
認識 Web API、HTTP 和 JSON 資料交換格式

資訊擷取來源

後來發現有更好用 最新試行版(已正式上架)的

環保署環境資料開放平台開放資料API

註冊 API Key 後可以篩選更多參數來撈資料

要解析的 json 網址:

資料集名稱先記好比較快找到

註冊 API 使用說明:
https://data.epa.gov.tw/paradigm

request and json
透過 json 回傳的是一個 list

import requests
aqi_url = "https://data.epa.gov.tw/api/v1/aqx_p_432?offset=0&limit=80&api_key=自行註冊" 
# 環保署環境資料開放平臺 試行版 https://data.epa.gov.tw/
response = requests.get(aqi_url)
aqi = response.json()['records']
print(response.status_code)

### 200  正常回傳
### 404 回傳錯誤
print(type(response))
print(type(aqi))

輸出 List

檔案處理

“r” 唯讀模式

“w” 寫入模式(覆寫)

“a” 寫入模式(續寫)

with open("data_pm25.txt", "w", encoding="utf-8") as file:

再用 for 把資料寫入 file 當中

f = open('file.txt', 'w')
f.write("file-write")
f.close()

參考資料

輕鬆學習 Python | 資料分析

輕鬆學習 Python:透過 API 擷取網站資料

Python 初學第十二講—檔案處理

補充:ChatGPT 指令大全
https://www.explainthis.io/zh-hant/chatgpt


#Python #爬蟲 #pm2.5 #AQI #chatGPT #ifttt







Related Posts

DAY11:Disemvowel Trolls

DAY11:Disemvowel Trolls

[PySide6]介面與邏輯

[PySide6]介面與邏輯

學習 Git - 什麼是 HEAD?

學習 Git - 什麼是 HEAD?


Comments