Python利用itchat模块定时给朋友发送微信信息
本文介绍如何使用Python的itchat库结合第三方数据接口,实现向指定好友自动推送定制化问候消息。通过配置调度时间与好友参数,脚本可定时抓取天气、纪念日天数及精选语句并发送至微信,全程支持自动重连与后台静默运行。
实现效果与运行原理
该脚本基于Python调度框架与微信网页版协议,能够按设定时间自动唤醒登录、查询当日数据并通过API投递至目标账号。运行后将周期性输出包含当前日期、所在城市天气状况、空气质量指数以及纪念天数的个性化文本。


环境准备与工程结构
在开始部署前,请确保系统已安装Python解释器。项目采用模块化设计,便于后续扩展功能或更换数据源。

city_dict.py:维护城市名称到标准编码的映射表。config.yaml:集中管理定时时间点、收件人昵称、起始纪念日期等易变参数。GFWeather.py:封装登录验证、数据抓取、消息拼接与发送逻辑的核心类。requirements.txt:列出运行所需的第三方依赖包。run.py:项目入口文件,负责初始化实例并触发主循环。
第1步:安装依赖库
进入项目根目录,通过包管理器一键拉取所需组件。
pip install -r requirements.txt
第2步:修改配置文件
打开config.yaml,根据实际需求调整以下字段:
#每天定时发送的时间点,如:8:30
alarm_timed: '9:30'
# 女友所在城市名称
city_name: '桂林'
# 你的微信好友备注名称
wechat_name: '古典'
# 纪念日起始日期
start_date: '2017-11-11'
注意:city_name需严格匹配city_dict.py中的键名,否则将无法获取天气数据。若使用新城市,需自行查阅官方城市编码表进行补充。
第3步:启动定时服务
运行入口脚本后,控制台将打印二维码或使用命令行自动完成授权。登录成功后,内部调度器将注册定时任务并转入常驻监听模式。
python run.py
核心逻辑代码说明
核心业务逻辑集中在GFWeather.py中,主要包含四个关键方法:
- 状态维持与自动重连:
is_online()通过请求好友列表检测会话有效性。若发现掉线且启用自动重连,系统将尝试最多5次重新扫码或命令行动态刷新凭证,保障后台运行的稳定性。 - 定时任务注册:
run()中使用BlockingScheduler创建阻塞式定时器。依据配置读取的小时与分钟值绑定self.start_today_info方法,达到设定时刻即唤醒执行链。 - 数据聚合与格式化:
get_dictum_info()请求ONE网站解析DOM节点提取每日金句;get_weather_info()调用SOJSON天气API,提取预报详情、温湿度区间、风向风力及AQI数值,并结合起始日期计算累计天数,最终拼接成符合排版要求的字符串。 - 消息定向投递:在执行周期内,先通过
itchat.search_friends(name=wechat_name)获取目标用户的唯一标识符UserName,随后调用itchat.send()将组装好的文本发送至对方对话框。
排错指南与维护建议
由于微信网页版接口策略时常调整,部分用户可能在运行初期遇到以下问题:
- 频繁掉线或扫码失败:旧版接口存在频率限制。建议在首次测试时关闭自动重连观察日志报错,必要时暂停高频调用或检查网络IP是否被风控拦截。
- 搜索不到好友:确认
config.yaml中的wechat_name与实际聊天窗口显示的备注名完全一致,包括空格与特殊字符。 - 城市数据为空:
city_dict.py若未包含目标城市,代码会直接跳过天气环节。需手动查阅最新城市编码表进行补全。
测试前请备份重要聊天记录,以免意外操作导致消息队列堆积。定期关注官方接口变动并及时更新依赖版本。
总结
以上就是Python利用itchat模块定时给朋友发送微信信息的详细内容,更多关于Python实现微信自动化消息推送的资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













