吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 13167|回复: 88
收起左侧

[Python 转载] 使用云函数进行每日天气推送

  [复制链接]
黑蚁 发表于 2020-7-1 19:32
本帖最后由 黑蚁 于 2020-8-5 18:30 编辑

8月2日调用自动恢复,未改动。

更新 发现报错不推送了,检测发现是API接口地址变更,请修改接口,接口地址

http://t.weather.itboy.net/api/weather/city/

国服最强白嫖怪首次发帖,如有错误,还望指正,谢谢!


前一阵在论坛内用上了 @三滑稽甲苯 大佬的某度吧签到脚本,发现云函数真的是个好东西,搭配消息推送那可玩性还是比较高的。

本来搭配某酱微信推送,但是发现好像没有QQ直观,因为微信要点进去才能看消息内容,所以天气推送就直接使用QQ的消息推送算了。
虽然不知道我搞这玩意有多大的用处,但是本着互联网精神还是分享给大家,万一有用呢。{:301_997:}

直接上源码:(如果怕格式不正确的可以选择下载.py文件使用上传方式)

[Python] 纯文本查看 复制代码
#!/usr/bin/python3
#coding=utf-8
#不建议使用某酱,因为不够直观
import requests, json
import time

spkey = '***********************************'          #CP的key
def get_iciba_everyday():
    icbapi = '此处地址在.py文件里面有'
    eed = requests.get(icbapi)
    bee = eed.json()               #返回的数据
    english = eed.json()['content']
    zh_CN = eed.json()['note']
    str = '\n【奇怪的知识】\n' + english + '\n' + zh_CN
    return str
print(get_iciba_everyday())

def main(*args):
    api ='http://t.weather.itboy.net/api/weather/city/'#[backcolor=rgb(255, 255, 254)]API地址,必须配合城市代码使用[/backcolor]
    city_code = '101040100'               #查询你的城市代码
    tqurl = api + city_code
    response = requests.get(tqurl)
    d = response.json()         #将数据以json形式返回,这个d就是返回的json数据

    if(d['status'] == 200):     #当返回状态码为200,输出天气状况
        print("城市:",d["cityInfo"]["parent"], d["cityInfo"]["city"])
        print("更新时间:",d["time"])
        print("日期:",d["data"]["forecast"][0]["ymd"])
        print("星期:",d["data"]["forecast"][0]["week"])
        print("天气:",d["data"]["forecast"][0]["type"])
        print("温度:",d["data"]["forecast"][0]["high"],d["data"]["forecast"][0]["low"])
        print("湿度:",d["data"]["shidu"])
        print("PM25:",d["data"]["pm25"])
        print("PM10:",d["data"]["pm10"])
        print("空气质量:",d["data"]["quality"])
        print("风力风向:",d["data"]["forecast"][0]["fx"],d["data"]["forecast"][0]["fl"])
        print("感冒指数:",d["data"]["ganmao"])
        print("温馨提示:",d["data"]["forecast"][0]["notice"],"。")

        cpurl = '自己改请求地址'+spkey               #自己改发送方式,我专门创建了个群来收消息,所以我用的group
        tdwt = '【今日份天气】\n城市:'+d['cityInfo']['parent']+' '+d['cityInfo']['city']+'\n日期:'+d["data"]["forecast"][0]["ymd"]+' '+d["data"]["forecast"][0]["week"]+'\n天气:'+d["data"]["forecast"][0]["type"]+'\n温度:'+d["data"]["forecast"][0]["high"]+' '+d["data"]["forecast"][0]["low"]+'\n湿度:'+d["data"]["shidu"]+'\n空气质量:'+d["data"]["quality"]+'\n风力风向:'+d["data"]["forecast"][0]["fx"]+' '+d["data"]["forecast"][0]["fl"]+'\n温馨提示:'+d["data"]["forecast"][0]["notice"]+'。\n[更新时间:'+d["time"]+']\n?-----------------'+get_iciba_everyday()         #天气提示内容,基本上该有的都做好了,如果要添加信息可以看上面的print,我感觉有用的我都弄进来了。
        requests.post(cpurl,tdwt.encode('utf-8'))         #把天气数据转换成UTF-8格式,不然要报错。
    else:
        error = '【出现错误】\n  今日天气推送错误,请检查服务状态!'
        requests.post(cpurl,error.encode('utf-8'))

def main_handler(event, context):
    return main()

if __name__ == '__main__':
    main()


其实就是几行代码的事,业余选手中的业余选手,如有不足还望大佬批评指正。{:301_987:}

截图:
所有操作做完后点测试看是否成功
QQ截图20200701192540.png
成功后QQ或者QQ群(你自己选择的方式)会受到推送消息
QQ截图20200701192251.png
.py文件下载地址
https://wwe.lanzouj.com/b00zm8pcd 密码:fnfp

免费评分

参与人数 18吾爱币 +27 热心值 +16 收起 理由
魔道书生 + 2 + 1 用到了
kk52140 + 2 + 1 一次成功,谢谢您的分享,希望以后可以加一个明日的
Ryann + 1 + 1 我很赞同!
hj170520 + 1 + 1 谢谢@Thanks!
georgefan + 1 + 1 谢谢@Thanks!
xtlhq + 1 + 1 8.3测试成功
dhyfy + 1 + 1 热心回复!
446917139 + 2 + 1 我很赞同!
pp61504522 + 1 + 1 谢谢@Thanks!
wang2019 + 1 谢谢@Thanks!
wushaominkk + 5 + 1 鼓励新人贴,希望能看到您更好的作品
超级省电模式 + 1 打卡成功,就是里面细节花了一点时间
liuqm + 1 + 1 用心讨论,共获提升!
54zsloy + 2 + 1 先评为敬!
你个哈麻皮 + 1 + 1 谢谢@Thanks!
ladinglin + 1 + 1 谢谢@Thanks!
飞龙project + 1 + 1 很有用!
Zeaf + 2 + 1 支持一下新人,感谢发布原创作品。

查看全部评分

本帖被以下淘专辑推荐:

  • · 雲方|主题: 27, 订阅: 25

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

shuai2051 发表于 2020-7-21 16:05
shuai2051 发表于 2020-7-21 15:35
昨天创建时候测试都正常,今天到触发器设定时间后没有收到消息,日志显示调用失败,有没有碰到过这种情况的

接口换域名了
t.weather.sojson.com 换成 t.weather.itboy.net
weather.sojson.com 换成 weather.itboy.net


修改后就可以正常使用了

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
liuqm + 1 + 1 热心回复!

查看全部评分

Zeaf 发表于 2020-7-1 19:58
黑蚁 发表于 2020-7-1 19:57
把推送的send改为group即可

我不太懂,之前没接触过
就这一行
cpurl = '自己改请求地址'+spkey
怎么改
biebiebai 发表于 2020-7-2 15:58
Zeaf 发表于 2020-7-1 19:55
话说qq群怎么推送消息
 楼主| 黑蚁 发表于 2020-7-1 19:57
Zeaf 发表于 2020-7-1 19:55
话说qq群怎么推送消息

把推送的send改为group即可
 楼主| 黑蚁 发表于 2020-7-1 20:00
Zeaf 发表于 2020-7-1 19:58
我不太懂,之前没接触过
就这一行
cpurl = '自己改请求地址'+spkey

因为那一行是网址,版规不允许发网址我就把带网址的都去掉了,建议下载蓝奏文件直接导入云函数使用,那样只需要改你自己的key就可以了。
Zeaf 发表于 2020-7-1 20:01
黑蚁 发表于 2020-7-1 20:00
因为那一行是网址,版规不允许发网址我就把带网址的都去掉了,建议下载蓝奏文件直接导入云函数使用,那样 ...

哦,好的,了解
软件我来了 发表于 2020-7-1 20:07
能不能做一个网站检测推送?就是网站打不开了,微信推送异常
文大大 发表于 2020-7-1 20:11
请问PY后缀文件怎么上传到云
头像被屏蔽
yj920 发表于 2020-7-1 21:01
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 黑蚁 发表于 2020-7-1 21:09
文大大 发表于 2020-7-1 20:11
请问PY后缀文件怎么上传到云

QQ截图20200701210831.png
第二步的时候改一下提交方法。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-22 19:19

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表