PM2.5的Line機器人:使用Python + IFTTT 傳送最新PM2.5數值

#20190810更新SSL處理

2020/06/24更新

[Python爬蟲教學]Python網頁爬蟲結合LINE Notify打造自動化訊息通知服務

https://www.learncodewithmike.com/2020/06/python-line-notify.html

使用Pandas進行資料處理,先顯示高雄市資料

import pandas as pddf = pd.read_csv("https://opendata.epa.gov.tw/ws/Data/ATM00625/?$format=csv")
df1 = df.set_index(['county'])
i=df1.loc['高雄市']
print(i)

接著,去除資料時間、單位,不須出現在Line機器人的資料

import pandas as pddf = pd.read_csv("https://opendata.epa.gov.tw/ws/Data/ATM00625/?$format=csv")
b=df.drop(labels=['DataCreationDate','ItemUnit'],axis='columns')
df1 = b.set_index(['county'])
i=df1.loc['高雄市']
print(i)

使IFTTT與Line及Webhooks連結

程式碼與IFTTT結合

import requests      # 匯入 requests 套件def send_ifttt(v1):   # 定義函式來向 IFTTT 發送 HTTP 要求
url = ('https://maker.ifttt.com/trigger/XXXXXXXXXXXXXXXXXXX/with/' +'key/XXXXXXXXXXXXXXXXXXXXXXXXX' +'?value1='+str(v1))
r = requests.get(url) # 送出 HTTP GET 並取得網站的回應資料
if r.text[:5] == 'Congr': # 回應的文字若以 Congr 開頭就表示成功了
print('已傳送 (' +str(v1)+') 到 Line')
return r.text
ret = send_ifttt(i) #傳送 HTTP 請求到 IFTTT
print('IFTTT 的回應訊息:',ret) # 輸出 IFTTT 回應的文字

# XXXXXXXXXXXXXXXXXXXXXXX的部分每個人都不一樣需自行設定

完整程式碼

import requests      # 匯入 requests 套件
import pandas as pd
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
df = pd.read_csv("https://opendata.epa.gov.tw/ws/Data/ATM00625/?$format=csv")
b=df.drop(labels=['DataCreationDate','ItemUnit'],axis='columns')
df1 = b.set_index(['county'])
i=df1.loc['高雄市']
print(i)
def send_ifttt(v1): # 定義函式來向 IFTTT 發送 HTTP 要求
url = ('https://maker.ifttt.com/trigger/你的EventName/with/' +
'key/webhooks金鑰' +
'?value1='+str(v1))
r = requests.get(url) # 送出 HTTP GET 並取得網站的回應資料
if r.text[:5] == 'Congr': # 回應的文字若以 Congr 開頭就表示成功了
print('已傳送 (' +str(v1)+') 到 Line')
return r.text
ret = send_ifttt(i) #傳送 HTTP 請求到 IFTTT
print('IFTTT 的回應訊息:',ret) # 輸出 IFTTT 回應的文字

自動化排程執行

參考書籍:

Written by

Machine Learning / Deep Learning / Python / Flutter cakeresume.com/yanwei-liu

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store