昨天回家女朋友吐槽說最近天氣總是多變,突然就下雨了~
其實我想說,你出門之前能不能看看天氣預報,但是誰讓她是我的心頭肉呢,所以說是不可能說的,但是咱們可以預防!
我直接用Python整了一手自動發訊息,每天定時把天氣預報發給她,這回總能長點心了!
大家可以收藏一下,以后絕對用得到!也可以弄成定時給你的女神發送關心的訊息,想發什么內容改一改就行了,下一個海王就是你~
首先我們來了解一下思路
這里的需求是什么?
我們是要防止女朋友不知道天氣情況,導致被淋雨!
沒問題,之前我們剛好使用過發送短信的手段,那我們把它用起來,
我們搜索相關天氣頻道的獲取天氣的介面,發送短信,和天氣都獲取到后,我們就要找材料了,
材料:
1、twilio 模塊,直接pip安裝
2、一個天氣預報的介面
3、女朋友手機號碼
4、注冊一個twilio賬號,
那第四步的話,需要申請一個手機號碼,給大家一個網址吧:https://www.twilio.com/
OK,首先來看,如果發送短信到手機,
發送短信代碼如下:
def send_message(text): # 下面認證資訊的值在你的 twilio 賬戶里可以找到 account_sid = "ACecad97aaec8f2e1fbd95b1390ef2acf" auth_token = "b5a5a863223b6c3dad4f1e488975dd4" client = Client(account_sid, auth_token) client.messages.create( to="+86", # 區號+你的手機號碼 from_="+150", # 你的 twilio 電話號碼 body=text) print("發送成功")
# 我還給大家準備了大量的Python學習資料,直接在群里就可以免費領取了, # Python學習交流群:924040232
這么看是不是很簡單這個短信代碼,沒錯就是怎么簡單,
那剩下的就是搞定天氣,那我們接著來看,
我們需要天氣介面,并獲取介面回傳的資訊,
我這里給大家提供一個介面:
http://t.weather.sojson.com/api/weather/city/101280101
主要格式:http://t.weather.sojson.com/api/weather/city/+city_id
city_id有一個檔案專門提供,待會兒打包帶走,
那我們如何獲取資訊呢?
我們使用到掉介面的模塊,這里使用requests,
代碼如下:
def get_weather():#獲取天氣 url = "http://t.weather.sojson.com/api/weather/city/101280101" html = requests.get(url) x = html.json() forecast="""時間:{0},{1} {2},{3},{4},風力{5},{6} 溫馨提示:{7} """.format(x["data"]["forecast"][0]["ymd"], x["data"]["forecast"][0]["week"], x["data"]["forecast"][0]["high"], x["data"]["forecast"][0]["low"], x["data"]["forecast"][0]["fx"], x["data"]["forecast"][0]["fl"], x["data"]["forecast"][0]["type"], x["data"]["forecast"][0]["notice"]) data="""{0}:{1} 濕度:{2} pm25:{3} pm10:{4} 溫度:{5} 質量:{6} 提醒:{7} {8}""".format(x["time"], x["cityInfo"]["city"], x["data"]["shidu"], x["data"]["pm25"], x["data"]["pm10"], x["data"]["quality"], x["data"]["wendu"], x["data"]["ganmao"], forecast)#短信格式 print(data)
好了,搞定,成功獲取到天氣,來看一下輸出結果:
2019-06-24 14:13:21:廣州市 濕度:97% pm25:8.0 pm10:11.0 溫度:優 質量:23 提醒:各類人群可自由活動 時間:2019-06-24,星期一 高溫 30.0℃,低溫 25.0℃,無持續風向,風力<3級,大雨 溫馨提示:出門最好穿雨衣,勿擋視線
看見這個滿滿的溫馨提示,女朋友都開心了不少吧!
然后再來固定每天早上8:00發送,
來看完整的代碼:
import requests import time from twilio.rest import Client ? def send_message(text): # 下面認證資訊的值在你的 twilio 賬戶里可以找到 account_sid = "ACecad97aaec8fe1dfbd95b1390ef2acf" auth_token = "b5a5a8632223b6c3dd4f1e488975dd4" client = Client(account_sid, auth_token) client.messages.create( to="+86", # 區號+你的手機號碼 from_="+133", # 你的 twilio 電話號碼 body=text) print("發送成功") ? def get_weather(): url = "http://t.weather.sojson.com/api/weather/city/101280101" html = requests.get(url) x = html.json() forecast="""時間:{0},{1} {2},{3},{4},風力{5},{6} 溫馨提示:{7} """.format(x["data"]["forecast"][0]["ymd"], x["data"]["forecast"][0]["week"], x["data"]["forecast"][0]["high"], x["data"]["forecast"][0]["low"], x["data"]["forecast"][0]["fx"], x["data"]["forecast"][0]["fl"], x["data"]["forecast"][0]["type"], x["data"]["forecast"][0]["notice"]) data="""{0}:{1} 濕度:{2} pm25:{3} pm10:{4} 溫度:{5} 質量:{6} 提醒:{7} {8}""".format(x["time"], x["cityInfo"]["city"], x["data"]["shidu"], x["data"]["pm25"], x["data"]["pm10"], x["data"]["quality"], x["data"]["wendu"], x["data"]["ganmao"], forecast) send_message(data)#呼叫發送短信的函式 ? if __name__=="__main__": while true: time.sleep(1)#防止cpu處理太多,加一個一秒的停頓 if time.strftime("%H:%M", time.localtime())=="08:00": get_weather()
成功發送短信,還是挺簡單的!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/431972.html
標籤:其他
