当前位置: 首页 > 科技观察

天气越来越冷了,为您的父母制作天气提醒,小助手

时间:2023-03-18 11:38:43 科技观察

最近天气变冷了。我从和父母聊天中了解到,他们不方便查看每天的天气预报。记得小时候,每天晚上19:30左右,全家人都要守在电视机前收听第二天的天气情况。现在对于我们年轻人来说获取天气信息已经很方便了,但是对于我们这些不擅长使用手机的父母来说还是很困难的。他们可能经常使用微信。为此,我写了一个不到40行代码的小工具,每天将当天的天气情况直接发送到微信群。查询天气接口获取天气情况,需要一个查询天气的接口。我在网上找到的。一般注册后,会发送一定数量的电话。我选择了一个,它会免费发送500个查询。让我们看一下该接口的API文档。其中,城市名cityname和key是必填项。http://v.juhe.cn/weather/index?format=2&cityname=%E8%8B%8F%E5%B7%9E&key=你申请的KEYkey值可以在我在juhe.cn界面的一栏看到.我们也可以提前在Postman工具中进行调试,看看接口是否可以调优。没用过Postman接口工具也没关系,他们的网页上也提供了调试工具。查询天气方法我们可以直接使用requests库请求接口获取json格式的天气信息。json数据包含当天和未来几天的天气信息。这里我只需要当天,当天的数据都在result下的today。提取它并返回它。通过微信发送天气信息我们通过微信向群发送天气信息,这里需要用到调用微信的库,itchat库或者wxpy都可以,这里我使用的是wxpy库。首先导入wxpy库。fromwxpyimport*我们集成了刚才请求接口返回的天气信息,然后使用wxpy库的search方法通过组名找到你需要发送天气信息的组,用send方法发送。我这里是发到群里,当然你也可以直接发到你的个人微信里。my_friend=bot.friends().search(u'pkbrother')[0]定时操作如果我们每次都需要手动运行,会有点麻烦。我们想让程序在每天固定的时间发送,这里就需要用到Timer定时器。Timer定时器格式:Timer(86400,get_weather)第一个参数表示在指定的时间间隔(单位:秒)后再次调用该方法(第二个参数)。请注意,方法后没有括号。86400秒相隔24小时,也就是一天。t=Timer(86400,get_weather)t.start()t.join()异常处理如果发送信息失败,我会把信息发送给自己,这里我做了一个异常处理。exceptBaseException:my_friend=bot.friends().search(u'brucepk')[0]#如果发送不成功,则给自己发送消息,提示消息发送失败my_friend.send(u'failedto发送天气信息')我们的程序需要持续运行,那么需要一直在电脑上运行吗?这有点不现实。我们可以部署在服务器上,就可以搞定。现在服务器也很便宜。做活动的时候一般一年100元以内就可以买到。在服务器上部署,在服务器上运行程序,直接扫描二维码登录微信。以下是我上周五开始跑步的内容。24小时后,我在星期六再次调用该方法以获取新的天气信息。发到群里的效果如下图所示。当然你也可以添加一些界面返回的信息或者你想说的。可能出现的问题1、你的微信无法登录网页版微信,因为itchat库和wxpy库都调用了网页版微信的接口。如果你的微信注册时间比较晚,网页版的登录功能被限制,那么你是不能使用这个程序的。跑步。2.如果无法发送到指定的群,请先查看群名,去掉群名中的一些emoji表情。这些特殊符号可能会导致无法识别。如果群名正确,请查看自动发送消息的号码是否已将该群添加到通讯录中。这样一个定时发送消息的小工具就完成了,你还可以在它的基础上进行扩展,增加其他的功能,使其更加完善。