微信推送每日天氣/全國(guó)疫情,云函數(shù)部署免費(fèi)便捷

原博地址:使用云函數(shù)進(jìn)行每日天氣推送 – 『編程語(yǔ)言區(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è)地址注冊(cè),獲取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 = '【奇怪的知識(shí)】\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)頁(yè)中獲得自己的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ò)誤,請(qǐng)檢查服務(wù)或網(wǎng)絡(luò)狀態(tài)!'
        print(error)

2、全國(guó)疫情代碼

"""
@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ī)獲取請(qǐng)求頭
    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'])#全國(guó)累計(jì)確診較昨日新增
    today_input =str(url_json['data']['chinaTotal']['today']['input'])#全國(guó)較昨日新增境外輸入
    today_storeConfirm = str(url_json['data']['chinaTotal']['today']['storeConfirm'])#全國(guó)現(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'])#無(wú)癥狀感染者較昨日
 
    total_confirm = str(url_json['data']['chinaTotal']['total']['confirm'])  # 全國(guó)累計(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'])  # 全國(guó)現(xiàn)有確診
    total_noSymptom = str(url_json['data']['chinaTotal']['extData']['noSymptom'])#無(wú)癥狀感染者
 
    lastUpdateTime = url_json['data']['lastUpdateTime']#截止時(shí)間
 
    data ='-' * 8 +'全國(guó)疫情數(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  無(wú)癥狀感染者:' + 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':"全國(guó)疫情數(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ù)。打開騰訊云控制臺(tái),搜索“云函數(shù)”,點(diǎn)擊“函數(shù)服務(wù)”,“新建”。

騰訊云后臺(tái)

2、選擇“自定義創(chuàng)建”,輸入“執(zhí)行方法”。

自定義

這里的執(zhí)行方法是代碼調(diào)用函數(shù)方法名,輸入錯(cuò)誤將報(bào)錯(cuò)。

執(zhí)行方法

以上步驟處理完之后,“測(cè)試”無(wú)誤,點(diǎn)擊“部署”即可。


如圖日志

3、創(chuàng)建觸發(fā)器
創(chuàng)建觸發(fā)器,設(shè)置每天早上7點(diǎn)給我發(fā)天氣信息。

定時(shí)器

示例效果

天氣信息

全國(guó)疫情的部署方式也是一樣,如果你有什么有趣的腳本,不妨放在云函數(shù)上運(yùn)行,每月免費(fèi)額度還是很多的。
云函數(shù)額度

更多博文可以在我的博客中查看。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容