原博地址:使用云函數(shù)進(jìn)行每日天氣推送 – 『編程語言區(qū)』 – 吾愛破解 – LCG – LSG |安卓破解|病毒分析|www.52pojie.cn
在原博的基礎(chǔ)上改了一下推送渠道智蝠,雖然沒有Qmsg醬美觀,但我的腳本推送消息都是微信Server醬审胚,就不想換了(雖然現(xiàn)在有很多的天氣軟件匀奏,但我可不想每天都看很多廣告)也拜。
正文代碼
1、天氣推送代碼
"""
@File : weather.py
@Time : 2021.5.11
@Software: IntelliJ IDEA 2019.3.5 x64
@python : Python 3.6
@Website : https://bayminlkh.xyz
"""
#!/usr/bin/python3
#coding=utf-8
import requests, json
#spkey = '' #https://qmsg.zendee.cn ---> 去這個(gè)地址注冊在张,獲取key赠群,然后添加綁定機(jī)器人
def get_iciba_everyday():
icbapi = 'http://open.iciba.com/dsapi/'
eed = requests.get(icbapi)
bee = eed.json() #返回的數(shù)據(jù)
english = bee['content']
zh_CN = bee['note']
str = '【奇怪的知識】\n' + english + '\n' + zh_CN
return str
def main(arg1,arg2):
try:
api = 'http://t.weather.itboy.net/api/weather/city/' #API地址,必須配合城市代碼使用
city_code = 'XXXXX' #進(jìn)入https://where.heweather.com/index.html查詢你的城市代碼
tqurl = api + city_code
response = requests.get(tqurl)
d = response.json() #將數(shù)據(jù)以json形式返回,這個(gè)d就是返回的json數(shù)據(jù)
if(d['status'] == 200): #當(dāng)返回狀態(tài)碼為200笙纤,輸出天氣狀況
parent = d["cityInfo"]["parent"] #省
city = d["cityInfo"]["city"] #市
update_time = d["time"] #更新時(shí)間
date = d["data"]["forecast"][0]["ymd"] #日期
week = d["data"]["forecast"][0]["week"] #星期
weather_type = d["data"]["forecast"][0]["type"] # 天氣
wendu_high = d["data"]["forecast"][0]["high"] #最高溫度
wendu_low = d["data"]["forecast"][0]["low"] #最低溫度
shidu = d["data"]["shidu"] #濕度
pm25 = str(d["data"]["pm25"]) #PM2.5
pm10 = str(d["data"]["pm10"]) #PM10
quality = d["data"]["quality"] #天氣質(zhì)量
fx = d["data"]["forecast"][0]["fx"] #風(fēng)向
fl = d["data"]["forecast"][0]["fl"] #風(fēng)力
ganmao = d["data"]["ganmao"] #感冒指數(shù)
tips = d["data"]["forecast"][0]["notice"] #溫馨提示
# 天氣提示內(nèi)容 get_iciba_everyday() +
tdwt = "\n-----------------------------------------" + "\n【"+ date +"今日份天氣】\n城市: " + parent + city + \
"\n日期: " + date + "\n星期: " + week + "\n天氣: " + weather_type + "\n溫度: " + wendu_high + " / "+ wendu_low + "\n濕度: " + \
shidu + "\nPM25: " + pm25 + "\nPM10: " + pm10 + "\n空氣質(zhì)量: " + quality + \
"\n風(fēng)力風(fēng)向: " + fx + fl + "\n感冒指數(shù): " + ganmao + "\n溫馨提示: " + tips + "\n更新時(shí)間: " + update_time
print(tdwt)
data = {
'msg':tdwt.encode('utf-8')
}
#server醬KEY值在http://sc.ftqq.com/9.version網(wǎng)頁中獲得自己的key
cpurl = 'https://sc.ftqq.com/server醬KEY值.send?text=城市天氣預(yù)報(bào)&desp='+tdwt
requests.post(cpurl,data=data) #把天氣數(shù)據(jù)轉(zhuǎn)換成UTF-8格式耗溜,不然要報(bào)錯(cuò)。
except:
error = '【出現(xiàn)錯(cuò)誤】\n 今日天氣推送錯(cuò)誤省容,請檢查服務(wù)或網(wǎng)絡(luò)狀態(tài)抖拴!'
print(error)
2、全國疫情代碼
"""
@File : weather.py
@Time : 2021.5.11
@Software: IntelliJ IDEA 2019.3.5 x64
@python : Python 3.6
@Website : https://bayminlkh.xyz
"""
import requests,random,json
url = "https://c.m.163.com/ug/api/wuhan/app/data/list-total"
server_key = '' #填入你的server醬Key值即可
coolpush_key = 'xxxxx'
qmsg_key = 'xxxxxx'
def UserAgent(): #隨機(jī)獲取請求頭
user_agent_list = ['Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1464.0 Safari/537.36',
'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.16 Safari/537.36',
'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.3319.102 Safari/537.36',
'Mozilla/5.0 (X11; CrOS i686 3912.101.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36',
'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.93 Safari/537.36',
'Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1667.0 Safari/537.36',
'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:17.0) Gecko/20100101 Firefox/17.0.6',
'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1468.0 Safari/537.36',
'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2224.3 Safari/537.36',
'Mozilla/5.0 (X11; CrOS i686 3912.101.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36']
UserAgent={'User-Agent': random.choice(user_agent_list)}
return UserAgent
def Get_Url(arg1,arg2):
url_json = requests.get(url=url,headers=UserAgent()).json()
today_confirm = str(url_json['data']['chinaTotal']['today']['confirm'])#全國累計(jì)確診較昨日新增
today_input =str(url_json['data']['chinaTotal']['today']['input'])#全國較昨日新增境外輸入
today_storeConfirm = str(url_json['data']['chinaTotal']['today']['storeConfirm'])#全國現(xiàn)有確診較昨日
today_dead =str(url_json['data']['chinaTotal']['today']['dead'])#累計(jì)死亡較昨日新增
today_heal = str(url_json['data']['chinaTotal']['today']['heal'])#累計(jì)治愈較昨日新增
today_incrNoSymptom = str(url_json['data']['chinaTotal']['extData']['incrNoSymptom'])#無癥狀感染者較昨日
total_confirm = str(url_json['data']['chinaTotal']['total']['confirm']) # 全國累計(jì)確診
total_input = str(url_json['data']['chinaTotal']['total']['input']) # 境外輸入
total_dead = str(url_json['data']['chinaTotal']['total']['dead']) # 累計(jì)死亡
total_heal = str(url_json['data']['chinaTotal']['total']['heal']) # 累計(jì)治愈
total_storeConfirm = str(url_json['data']['chinaTotal']['total']['confirm'] - url_json['data']['chinaTotal']['total']['dead'] - url_json['data']['chinaTotal']['total']['heal']) # 全國現(xiàn)有確診
total_noSymptom = str(url_json['data']['chinaTotal']['extData']['noSymptom'])#無癥狀感染者
lastUpdateTime = url_json['data']['lastUpdateTime']#截止時(shí)間
data ='-' * 8 +'全國疫情數(shù)據(jù)實(shí)時(shí)統(tǒng)計(jì)' + '-' * 8 + '\n統(tǒng)計(jì)截至?xí)r間:'+ lastUpdateTime +'\n' + '-' * 32 + '\n' + \
' 累計(jì)確診:' + total_confirm + ' ; ' + '較昨日:' + today_confirm + \
'\n 現(xiàn)有確診:' + total_storeConfirm + ' ; ' + '較昨日:' + today_storeConfirm + \
'\n 累計(jì)死亡:' + total_dead + ' ; ' + '較昨日:' + today_dead + \
'\n 累計(jì)治愈:' + total_heal + ' ; ' + '較昨日:' + today_heal + \
'\n 境外輸入:' + total_input + ' ; ' + '較昨日:' + today_input + \
'\n 無癥狀感染者:' + total_noSymptom + ' ; ' + '較昨日:' + today_incrNoSymptom
print(data)
select_robots(2,data) #0為Qmsg推送腥椒,1為酷推推送阿宅,2為server醬推送。默認(rèn)為0
def select_robots(i,data):
if i == 0:
HtmlPuch_Qmsg(data)
elif i == 1:
HtmlPuch_coolpush(data)
elif i == 2:
HtmlPuch_server(data)
else:
print('選擇錯(cuò)誤!')
def HtmlPuch_server(data): #server醬推送
url_key = "https://sc.ftqq.com/" + server_key + ".send"
push_data = {'text':"全國疫情數(shù)據(jù)實(shí)時(shí)統(tǒng)計(jì)",'desp':data}
html = requests.post(url_key,headers=UserAgent(),data=push_data)
def HtmlPuch_coolpush(data): #酷推推送
url_key = "https://push.xuthus.cc/send/" + coolpush_key
push_data = {'c':data}
html = requests.get(url=url_key,params=push_data,headers=UserAgent())
def HtmlPuch_Qmsg(data): #Qmsg推送
url_key = "https://qmsg.zendee.cn/send/" + qmsg_key
push_data = {'msg':data}
html = requests.get(url=url_key,params=push_data,headers=UserAgent())
云函數(shù)部署
1笼蛛、以上代碼下載之后家夺,部署到騰訊云云函數(shù)。打開騰訊云控制臺伐弹,搜索“云函數(shù)”拉馋,點(diǎn)擊“函數(shù)服務(wù)”,“新建”惨好。
騰訊云后臺
2煌茴、選擇“自定義創(chuàng)建”,輸入“執(zhí)行方法”日川。
自定義
這里的執(zhí)行方法是代碼調(diào)用函數(shù)方法名蔓腐,輸入錯(cuò)誤將報(bào)錯(cuò)。
執(zhí)行方法
以上步驟處理完之后龄句,“測試”無誤回论,點(diǎn)擊“部署”即可。
如圖日志
3分歇、創(chuàng)建觸發(fā)器
創(chuàng)建觸發(fā)器傀蓉,設(shè)置每天早上7點(diǎn)給我發(fā)天氣信息。
定時(shí)器
示例效果
天氣信息
全國疫情的部署方式也是一樣职抡,如果你有什么有趣的腳本葬燎,不妨放在云函數(shù)上運(yùn)行,每月免費(fèi)額度還是很多的缚甩。
云函數(shù)額度
更多博文可以在我的博客中查看谱净。