本帖最后由 黑蚁 于 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或者QQ群(你自己选择的方式)会受到推送消息
.py文件下载地址
https://wwe.lanzouj.com/b00zm8pcd 密码:fnfp |