Python利用itchat模块定时给朋友发送微信信息

落日邮差
落日邮差
发布时间:2026-10-12| 7人浏览过
原创

本文介绍如何使用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中,主要包含四个关键方法:

  1. 状态维持与自动重连:is_online()通过请求好友列表检测会话有效性。若发现掉线且启用自动重连,系统将尝试最多5次重新扫码或命令行动态刷新凭证,保障后台运行的稳定性。
  2. 定时任务注册:run()中使用BlockingScheduler创建阻塞式定时器。依据配置读取的小时与分钟值绑定self.start_today_info方法,达到设定时刻即唤醒执行链。
  3. 数据聚合与格式化:get_dictum_info()请求ONE网站解析DOM节点提取每日金句;get_weather_info()调用SOJSON天气API,提取预报详情、温湿度区间、风向风力及AQI数值,并结合起始日期计算累计天数,最终拼接成符合排版要求的字符串。
  4. 消息定向投递:在执行周期内,先通过itchat.search_friends(name=wechat_name)获取目标用户的唯一标识符UserName,随后调用itchat.send()将组装好的文本发送至对方对话框。

排错指南与维护建议

由于微信网页版接口策略时常调整,部分用户可能在运行初期遇到以下问题:

  • 频繁掉线或扫码失败:旧版接口存在频率限制。建议在首次测试时关闭自动重连观察日志报错,必要时暂停高频调用或检查网络IP是否被风控拦截。
  • 搜索不到好友:确认config.yaml中的wechat_name与实际聊天窗口显示的备注名完全一致,包括空格与特殊字符。
  • 城市数据为空:city_dict.py若未包含目标城市,代码会直接跳过天气环节。需手动查阅最新城市编码表进行补全。

测试前请备份重要聊天记录,以免意外操作导致消息队列堆积。定期关注官方接口变动并及时更新依赖版本。

总结

以上就是Python利用itchat模块定时给朋友发送微信信息的详细内容,更多关于Python实现微信自动化消息推送的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。