大神论坛

找回密码
快速注册
查看: 501 | 回复: 0

[交流讨论] 用python每天qq上给女朋友报天气

主题

帖子

17

积分

初入江湖

UID
32
积分
17
精华
威望
34 点
违规
大神币
68 枚
注册时间
2021-04-10 16:01
发表于 2021-04-24 23:02
本帖最后由 华少 于 2021-04-24 23:02 编辑

既然是重复性工作,还是自动化实现吧,省事[坏笑]

做了代码简化,非常简单,四步走,不需要懂代码就能搞定。
分享给大家
(最下方有问答环节,回答了大部分朋友的问题,想动手做的朋友先看看!!!)

python3.6 + 腾讯云函数 + qmsg酱 + 和风天气


教程:

1、Qmsg酱

打开官网:https://qmsg.zendee.cn/index.html

  • 登录管理台,拿到key,留着一会用
  • qq号码 中,添加上要接受信息的qq
  • 在 Qmsg酱 中选个qq加上,收消息用



2、和风天气:

打开官网:https://console.qweather.com/
注册登录填写信息,拿到key,留着一会用


3、本地建个记事本,把代码复制进去,进行修改

import requests
import json
from requests.packages.urllib3.exceptionsimport 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 iin range(2):
yb= ybjs['HeWeather6'][0]['daily_forecast']
d1= yb[i]['date']+ ' ' + yb[i]['cond_txt_d']+ ' ' + yb[i]['tmp_min']+ '—' + yb[i]['tmp_max']+ '℃' + ' ' + yb[i]['wind_dir'] + ' ' + yb[i]['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收到消息,完成。


运行成功:




至此,自动化发送天气信息就完成了,撸铁打游戏时间又多了


问答环节(必读):
我发现有很多人想微信推送,我并不建议微信推送,因为不好用,我自己的代码里有钉钉、微信(server酱)、qq(Qmsg),三种推送方式,我截取了qq这一种做了简化给大家分享出来,因为这个最好用,能清晰的看到相对于前几天的天气情况,从而作出判断,很直观的感受。但是微信的话,用过server酱的都知道,没那么方便。

  • 能不能微信,怎么改

        微信比较麻烦,会的人自己改一下,不会的话别折腾了

  • 为什么不直接看手机上的天气

        手机是有,会忘记看,但 qq消息一定会看。

  • 代码报错怎么办

        能执行就不用管,云函数环境和本地不太一样

  • 太生硬,能不能加点话

        可以,有另一个接口,根据天气情况进行提取对应的话,我觉得比较生硬且影响效率就没加,想加的去看一下自己改

  • 为什么收不到消息

        已经有人交作业了,所以步骤和代码都没问题,仔细检查一下是不是漏了某个步骤。

返回顶部