Python使用itchat实现每日自动发送天气预报
本文介绍如何使用Python的itchat模块结合天气API,实现向指定微信好友每日自动发送天气预报的功能。通过获取城市天气数据并格式化后,利用itchat登录网页版微信进行消息推送,代码简洁,只需修改城市名和好友备注即可直接使用。
Python每日自动发送天气预报实现
本文分享了一个使用Python脚本向心爱之人每日发送天气预报的具体实现方案,供读者参考。
该方案基于此前获取天气数据的方法,并引入itchat模块来完成后续的自动化操作。
核心功能是将获取到的天气信息发送给指定的联系人。
代码逻辑较为简单,用户只需调整CITY_NAME变量以指定城市,并修改发送语句中的接收者名称,即可直接运行使用。
import requests
import json
import itchat
from threading import Timer
global CITY_NAME
CITY_NAME = "北京"
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36'
}
def find_weather():
# 获取天气
weather_url = 'http://wthrcdn.etouch.cn/weather_mini?city={}'.format(CITY_NAME)
city_response = requests.get(weather_url, headers=headers)
return json.loads(city_response.text)
def reform_fl(str_fl):
new_str = str_fl.split("[")[2].split("]")[0]
if new_str.startswith("<"):
result = new_str.split("<")[1]
else:
result = new_str
return result
def send_news(str):
itchat.auto_login() # 弹出一张图片二维码,扫描登录网页微信
person= itchat.search_friends(name='一只可爱的小奶猫') # 选择给谁发送,name是他的备注
mylover = person[0]["UserName"]
itchat.send(str, toUserName=mylover)
Timer(86400, send_news).start() # 每隔86400秒发送一次,每天发一次
if __name__ == "__main__":
weather_info = find_weather()
forecast_weather = weather_info.get('data').get('forecast')
ganmao = weather_info.get('data').get('ganmao')
str_1 = '今天是:' + forecast_weather[0].get('date') + '\n' \
+ '最高温度:' + forecast_weather[0].get('high') + '\n' \
+ '最低温度:' + forecast_weather[0].get('low') + '\n' \
+ '风向:' + forecast_weather[0].get('fengxiang') + '\n' \
+ '风力:' + reform_fl(forecast_weather[0].get('fengli')) + '\n' \
+ '天气状况:' + forecast_weather[0].get('type') + '\n'
str_2 = "早安亲爱滴:%s\n%s最近%s" % (str_1,CITY_NAME, ganmao)
send_news(str_2)
以上是本文的全部内容,希望能为读者的学习提供有益帮助,同时也欢迎大家继续支持本站。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













