原博地址:使用云函数进行每日天气推送 – 『编程语言区』 – 吾爱破解 – LCG – LSG |安卓破解|病毒分析|www.52pojie.cn
在原博的基础上改了一下推送渠道,虽然没有Qmsg酱美观,但我的脚本推送消息都是微信Server酱,就不想换了(虽然现在有很多的天气软件,但我可不想每天都看很多广告)。
正文代码
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 ---> 去这个地址注册,获取key,然后添加绑定机器人
def get_iciba_everyday():
icbapi = 'http://open.iciba.com/dsapi/'
eed = requests.get(icbapi)
bee = eed.json() #返回的数据
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' #进入https://where.heweather.com/index.html查询你的城市代码
tqurl = api + city_code
response = requests.get(tqurl)
d = response.json() #将数据以json形式返回,这个d就是返回的json数据
if(d['status'] == 200): #当返回状态码为200,输出天气状况
parent = d["cityInfo"]["parent"] #省
city = d["cityInfo"]["city"] #市
update_time = d["time"] #更新时间
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"] #天气质量
fx = d["data"]["forecast"][0]["fx"] #风向
fl = d["data"]["forecast"][0]["fl"] #风力
ganmao = d["data"]["ganmao"] #感冒指数
tips = d["data"]["forecast"][0]["notice"] #温馨提示
# 天气提示内容 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空气质量: " + quality + \
"\n风力风向: " + fx + fl + "\n感冒指数: " + ganmao + "\n温馨提示: " + tips + "\n更新时间: " + update_time
print(tdwt)
data = {
'msg':tdwt.encode('utf-8')
}
#server酱KEY值在http://sc.ftqq.com/9.version网页中获得自己的key
cpurl = 'https://sc.ftqq.com/server酱KEY值.send?text=城市天气预报&desp='+tdwt
requests.post(cpurl,data=data) #把天气数据转换成UTF-8格式,不然要报错。
except:
error = '【出现错误】\n 今日天气推送错误,请检查服务或网络状态!'
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(): #随机获取请求头
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'])#全国累计确诊较昨日新增
today_input =str(url_json['data']['chinaTotal']['today']['input'])#全国较昨日新增境外输入
today_storeConfirm = str(url_json['data']['chinaTotal']['today']['storeConfirm'])#全国现有确诊较昨日
today_dead =str(url_json['data']['chinaTotal']['today']['dead'])#累计死亡较昨日新增
today_heal = str(url_json['data']['chinaTotal']['today']['heal'])#累计治愈较昨日新增
today_incrNoSymptom = str(url_json['data']['chinaTotal']['extData']['incrNoSymptom'])#无症状感染者较昨日
total_confirm = str(url_json['data']['chinaTotal']['total']['confirm']) # 全国累计确诊
total_input = str(url_json['data']['chinaTotal']['total']['input']) # 境外输入
total_dead = str(url_json['data']['chinaTotal']['total']['dead']) # 累计死亡
total_heal = str(url_json['data']['chinaTotal']['total']['heal']) # 累计治愈
total_storeConfirm = str(url_json['data']['chinaTotal']['total']['confirm'] - url_json['data']['chinaTotal']['total']['dead'] - url_json['data']['chinaTotal']['total']['heal']) # 全国现有确诊
total_noSymptom = str(url_json['data']['chinaTotal']['extData']['noSymptom'])#无症状感染者
lastUpdateTime = url_json['data']['lastUpdateTime']#截止时间
data ='-' * 8 +'全国疫情数据实时统计' + '-' * 8 + '\n统计截至时间:'+ lastUpdateTime +'\n' + '-' * 32 + '\n' + \
' 累计确诊:' + total_confirm + ' ; ' + '较昨日:' + today_confirm + \
'\n 现有确诊:' + total_storeConfirm + ' ; ' + '较昨日:' + today_storeConfirm + \
'\n 累计死亡:' + total_dead + ' ; ' + '较昨日:' + today_dead + \
'\n 累计治愈:' + 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酱推送。默认为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('选择错误!')
def HtmlPuch_server(data): #server酱推送
url_key = "https://sc.ftqq.com/" + server_key + ".send"
push_data = {'text':"全国疫情数据实时统计",'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())
云函数部署
1、以上代码下载之后,部署到腾讯云云函数。打开腾讯云控制台,搜索“云函数”,点击“函数服务”,“新建”。
2、选择“自定义创建”,输入“执行方法”。
这里的执行方法是代码调用函数方法名,输入错误将报错。
以上步骤处理完之后,“测试”无误,点击“部署”即可。
3、创建触发器
创建触发器,设置每天早上7点给我发天气信息。
示例效果
全国疫情的部署方式也是一样,如果你有什么有趣的脚本,不妨放在云函数上运行,每月免费额度还是很多的。
更多博文可以在我的博客中查看。