女朋友要我每天给她报天气,这不耽误我打游戏嘛
本帖最后由 医生 于 2021-4-25 19:06 编辑既然是重复性工作,还是自动化实现吧,省事{:301_997:}
做了代码简化,非常简单,四步走,不需要懂代码就能搞定。
分享给大家
https://static.52pojie.cn/static/image/hrline/1.gif
(最下方有问答环节,回答了大部分朋友的问题,想动手做的朋友先看看!!!)
https://static.52pojie.cn/static/image/hrline/1.gif
python3.6 + 腾讯云函数 + qmsg酱 + 和风天气
https://static.52pojie.cn/static/image/hrline/1.gif
教程:
1、Qmsg酱:
打开官网:https://qmsg.zendee.cn/index.html
[*]登录管理台,拿到key,留着一会用
[*]qq号码 中,添加上要接受信息的qq
[*]在 Qmsg酱 中选个qq加上,收消息用
2、和风天气:
打开官网:https://console.qweather.com/
注册登录填写信息,拿到key,留着一会用
3、本地建个记事本,把代码复制进去,进行修改
# 禁止转载https://www.52pojie.cn/thread-1423918-1-1.html
import requests
import json
from requests.packages.urllib3.exceptions import InsecureRequestWarning
# 禁用安全请求警告
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
global contents
contents = ''
# 北京
def sign():
yburl = 'https://free-api.heweather.com/s6/weather/forecast'
value = {
'location': '北京',
'key': '【和风天气的key】',
'lang': 'zh'
}
ybreq = requests.get(yburl, params=value)
ybjs = ybreq.json()
# 返回api参数:
# print(ybjs)
for i in range(2):
yb = ybjs['HeWeather6']['daily_forecast']
d1 = yb['date'] + ' ' + yb['cond_txt_d'] + ' ' + yb['tmp_min'] + '—' + yb['tmp_max'] + '℃'+ ' ' + yb['wind_dir']+ ' ' + yb['wind_sc'] + '级'
# output(d1)
# qq推送
qqtalk = 'https://qmsg.zendee.cn/send/【qmsg的key】?msg=' + d1 + '&qq=【接收消息的qq号】'
requests.get(qqtalk)
def main():
sign()
def main_handler(event, context):
return main()
if __name__ == '__main__':
main()
[*]修改16行【和风天气的key】,替换成 2 中拿到的key
[*]修改30行【qmsg的key】,替换成 1 中拿到的key
[*]修改30行【接收消息的qq号】,第一步中,加qq的你自己的号
[*]修改15行 北京 ,成你自己的地理位置(以市为单位) 例如:上海
[*]25行,数字为2,发送明天的,数字改为1,发送今天的。这里我是每天晚上发明天的天气信息,所以是2,如果你要早上发,改为1
[*]发送的消息中,带有日期,我觉得没用,建议测试完成后删除,删除代码27行中的 yb[ i ]['date'] + ' ' +
即可。加上是为了给你测试发送的日期对不对用的,不对的话按照上一步进行修改。
4、腾讯云函数:
打开腾讯云函数登录:https://console.cloud.tencent.com/scf/list
[*] 函数服务——新建——自定义创建
[*]运行环境改为python3.6
[*]代码复制进去
[*]往下拉到底,触发器配置——自定义创建,触发周期改为自定义,Cron表达式改为下方这一段,21是21点,想要早上6点触发就改为6,其他不要动。 0 0 21 * * * *
[*]最下方,点完成,跳转管理
5、测试是否完成:
进函数代码,下拉,有个部署测试,点击测试,qq收到消息,完成。
运行成功:
https://static.52pojie.cn/static/image/hrline/1.gifhttps://static.52pojie.cn/static/image/hrline/1.gif
至此,自动化发送天气信息就完成了,撸铁打游戏时间又多了{:301_997:}
https://static.52pojie.cn/static/image/hrline/1.gifhttps://static.52pojie.cn/static/image/hrline/1.gif
问答环节(必读):
我发现有很多人想微信推送,我并不建议微信推送,因为不好用,我自己的代码里有钉钉、微信(server酱)、qq(Qmsg),三种推送方式,我截取了qq这一种做了简化给大家分享出来,因为这个最好用,能清晰的看到相对于前几天的天气情况,从而作出判断,很直观的感受。但是微信的话,用过server酱的都知道,没那么方便。
[*]能不能微信,怎么改
微信比较麻烦,会的人自己改一下,不会的话别折腾了
[*]为什么不直接看手机上的天气
手机是有,会忘记看,但 qq消息一定会看。
[*]代码报错怎么办
能执行就不用管,云函数环境和本地不太一样
[*]太生硬,能不能加点话
可以,有另一个接口,根据天气情况进行提取对应的话,我觉得比较生硬且影响效率就没加,想加的去看一下自己改
[*]为什么收不到消息
已经有人交作业了,所以步骤和代码都没问题,仔细检查一下是不是漏了某个步骤。
https://static.52pojie.cn/static/image/hrline/1.gifhttps://static.52pojie.cn/static/image/hrline/1.gif
我的其他帖子:
QQ9.4.6 防撤回(最新版): https://www.52pojie.cn/thread-1414675-1-1.html
TIM3.3.5 防撤回(最新版): https://www.52pojie.cn/thread-1385188-1-1.html
促进人类不断进步的原因果然还是欲望(财富+女人) 为什么我运行的时候显示报错第四行跟第六行 代码错误 # 禁止转载https://www.52pojie.cn/thread-1423918-1-1.html
import requests
import json
from requests.packages.urllib3.exceptions import InsecureRequestWarning
# 禁用安全请求警告
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
global contents
contents = ''
# 北京
def sign():
yburl = 'https://free-api.heweather.com/s6/weather/forecast'
value = {
'location': '长沙',
'key': 'key1',
'lang': 'zh'
}
ybreq = requests.get(yburl, params=value)
ybjs = ybreq.json()
# 返回api参数:
# print(ybjs)
yb = ybjs['HeWeather6']['daily_forecast']
d1 = ''
for i in range(len(yb)):
d1 =d1 + yb['date'] + ' ' + yb['cond_txt_d'] + ' ' + yb['tmp_min'] + '—' + yb['tmp_max'] + '℃'+ ' ' + yb['wind_dir']+ ' ' + yb['wind_sc'] + '级'+'\n'
print(d1)
# #获取鸡汤
# #此处为鸡汤api地址,坛友可自行网上查询其他地址替换
# jturl = 'https://data.zhai78.com/openOneGood.php'
# jtreq = requests.get(jturl, params=value)
# jtjs = jtreq.json()
# # 返回jtapi参数:
# print(jtjs)
# jttxt = jtjs['txt']
# # qq推送
# qqtalk = 'https://qmsg.zendee.cn/send/key2?msg=【早安】@face=176@' + jttxt + '今日天气:' + d1 +'&qq=1530402404'
# requests.get(qqtalk)
# 微信推送
Wxtalk = 'https://sctapi.ftqq.com/key3.send'
NewValue = {
'text': '往后三天的天气情况:',
'desp': d1,
'lang': 'zh'
}
requests.post(Wxtalk, params=NewValue)
def main():
sign()
def main_handler(event, context):
return main()
if __name__ == '__main__':
main()
15502453626 发表于 2021-4-21 23:52
这是女朋友么 手机不会自己看么
你可以问问对象为什么,如果有的话{:1_926:} 虽然你没有女朋友,不过我不愿意当面拆穿你 =.=6 所以,女朋友是第一生产力,总结完毕。 shengxi 发表于 2021-4-22 15:42
Server酱可以发微信的,但是要怎么写呢,我弄了半天不知道这推送要怎么写
weburl = 'https://sctapi.ftqq.com/自己的key.send'
newvalue = {
'title': '每日天气',
'desp': d1,
'lang': 'zh'
}
requests.post(weburl,params=newvalue) wuyei 发表于 2021-4-21 23:45
没女朋友的怎么办?
五姑娘伺候...{:1_893:} 这是女朋友么 手机不会自己看么 中国好男友,我爱了。感谢大哥的分享。我也给女朋友发去了
没女朋友的怎么办? 感谢分享 支持 wuyei 发表于 2021-4-21 23:45
没女朋友的怎么办?
没对象还在这玩电脑{:1_926:}