【可用】Python代码让微信群自动发消息,每天多睡2小时!

一、为什么要写这篇文章

解决什么问题?
“每天,当同事们手忙脚乱地在微信群发工作日报,我已经优雅地喝着咖啡,看着Python自动帮我完成了这个任务…”

可用并且简单
我不是一名程序员,所以知道大家的需求。自己在网上搜了一晚上,也问了deepseek给出的代码,都不能用。很疑惑,后来才发现微信官网已经大量关闭了对很多库的支持,所以不能使用 wxauto等等众多库,我决定送人玫瑰,一定有很多朋友也有这种需求,但是找不到这种教程,所以我愿意免费分享给大家。

二、效果演示

在这里插入图片描述

核心功能说明

  1. 每日不重复语录:

从预设的MOTIVATIONAL_QUOTES列表中随机选择
可自行扩充更多励志语句(建议至少准备10条)

  1. 自动日期填充:

自动生成格式如:2025年03月15日

  1. 智能定时:

每天在SCHEDULE_TIME指定时间发送

使用指南

  1. 准备工作
    pip install pyautogui pyperclip

提前登录微信PC版

手动打开一次目标微信群聊

微信快捷键使用的是默认,可用手动测试自己微信要与代码保持一致。

  1. 配置修改
    GROUP_NAME:改为实际微信群名称(必须完全匹配)

SCHEDULE_TIME:调整发送时间

MOTIVATIONAL_QUOTES:自定义语录库

  1. 运行方式:

测试模式:取消注释send_to_group(),直接运行

正式模式:保持daily_schedule()运行

后台运行:start /b python morning_bot.py

三、高级版代码:带定时和随机语录功能

# coding: utf-8
"""
手工安装所需模块
 pip install pyautogui
⚠️ 免责声明:
本代码仅用于技术研究
实际使用请勿违反微信条款
后果自负!
"""
import pyautogui
import time
import pyperclip
from datetime import datetime
import random

# 配置区
# 只支持windows系统
# 提前登录微信PC版
# 手动打开一次目标微信群聊
GROUP_NAME = "传输助手"  # 微信群名称(需完整匹配)
SCHEDULE_TIME = "7:17:10"  # 每天发送时间

# 励志语录库(可自行扩充)
MOTIVATIONAL_QUOTES = [
    "今天的努力,是明天的实力!加油!",
    "自控力改变习惯,习惯决定命运!",
    "每一个清晨,都是改变命运的机会!",
    "成功不是将来才有的,而是从决定去做的那一刻起持续累积而成!",
    "你今天的努力,是幸运的伏笔,当下的付出,是明日的花开!",
    "没有不进步的人生,只有不进取的人!",
]


def get_daily_message():
    """生成每日固定格式消息"""
    today = datetime.now().strftime("%Y年%m月%d日")
    quote = random.choice(MOTIVATIONAL_QUOTES)
    return f"【今日目标】{today}\n\n{quote}\n\n✨打卡清单 :\n1. 朗读50分钟\n2. 鹅打卡分享读书体会\n3. 学习python自动化办公\n4. 学习英语单词"


def send_to_group():
    """发送消息到微信群"""
    message = get_daily_message()

    # 激活微信
    pyautogui.hotkey('ctrl', 'alt', 'w')
    time.sleep(2)

    # 搜索群聊
    pyautogui.hotkey('ctrl', 'f')
    time.sleep(1)
    pyperclip.copy(GROUP_NAME)
    pyautogui.hotkey('ctrl', 'v')
    time.sleep(2)
    pyautogui.press('enter')
    time.sleep(1)

    # 发送消息
    pyperclip.copy(message)
    pyautogui.hotkey('ctrl', 'v')
    pyautogui.press('enter')

    print(f"✅ 已发送晨报到 {GROUP_NAME}")
    print("=" * 40)
    print(message)


def daily_schedule():
    """定时任务"""
    print("微信群晨报机器人已启动...")
    while True:
        now = datetime.now().strftime("%H:%M:%S")
        if now >= SCHEDULE_TIME:
            send_to_group()
            # 第二天同一时间再次发送
            time.sleep(60 * 60 * 24 - 1)
        time.sleep(1)


if __name__ == "__main__":
    # 测试发送(立即运行)
    send_to_group()

    # 正式运行(定时发送)
    #daily_schedule()

三、避坑指南(血泪经验)

  1. 时间误差
  2. 防封号建议:微信个人版有严格的安全机制,请不要越轨

发送间隔大于2分钟
避免完全重复内容
不要在凌晨发送

扩展玩法

我们可以,增加代码使其支持图片、world等等文件;也可以给多个人发送(要注意频率,否则会被微信封号限制,如果大家喜欢可用在下期更新)。

结语

“自从用了这个脚本,我不仅每天多睡2小时,还因为’准时’的早安问候获得了领导表扬!”

🔥 重要提醒:

本技术仅限学习交流

过度自动化可能违反微信使用条款

建议用于工作群等合规场景

Q&A环节:
Q:会被检测出机器人吗?
A:合理设置间隔时间(>2分钟)基本不会被检测

Q:支持Mac吗?
A:Mac需改用pyobjc库,原理相同

下期预告:《我用Python自动回复女朋友消息,结果…》

### 实现微信定时自动发送消息的方式 对于希望利用编程手段来实现微信定时自动发送消息的需求,存在种方法和技术栈可供选择。以下是几种主要的技术方案: #### 使用 Python 和 itchat 库 一种常见的做法是采用 Python 编程语言配合 `itchat` 这一第三方库。此方式适用于那些偏好脚本语言并熟悉 Python开发者。该解决方案依赖于 `itchat` 提供的 API 接口来进行与微信群组的消息交互,并借助 `apscheduler` 来安排具体的执行时间表[^1]。 ```python import itchat from apscheduler.schedulers.blocking import BlockingScheduler def send_message(): # 登录微信 itchat.auto_login(hotReload=True) # 获取群聊名称,返回的是列表形式,第一个元素便是所需对象 chatrooms = itchat.search_chatrooms(name='目标群聊名字') target_room = chatrooms[0]['UserName'] # 发送消息至指定群聊 itchat.send_msg('这是定时发送的信息', toUserName=target_room) sched = BlockingScheduler() # 设置调度任务,在每天特定时刻触发send_message函数 sched.add_job(send_message, 'cron', hour=8, minute=30) sched.start() ``` #### 利用 pywinauto 自动化 Windows 窗口应用 另一种途径则是运用专门针对 Windows 平台设计的应用程序自动化框架——pywinauto。这种方法允许用户创建能够模仿人类行为的操作序列,比如点击按钮、填写文本框以及激活菜单项等动作,从而间接达成向微信联系人或群聊传递信息的目的[^2]。 ```python from pywinauto.application import Application app = Application().connect(title_re=".*WeChat") # 连接到已运行的微信客户端 main_window = app.window(title_re=".*WeChat") # 假设已经打开了想要发送消息的好友对话框 message_box = main_window.child_window(auto_id="Input", control_type="Edit") message_box.type_keys("这是一条来自机器人的问候~{ENTER}", with_spaces=True) ``` #### 结合 PyAutoGUI 控制鼠标键盘事件 除了上述两种较为底层的方法外,还有更直观的选择就是使用像 PyAutoGUI 这样的图形界面自动化工具。它能轻松定位屏幕上的任意位置并通过模拟鼠标的移动和按键输入完成一系列复杂的指令链,非常适合用来处理诸如查找聊天窗口、输入文字乃至最终按下回车键这类视觉导向的任务[^4]。 ```python import pyautogui import time time.sleep(5) # 给予一定延迟以便切换到微信界面 search_bar_location = (x, y) # 替换成实际坐标值 pyautogui.click(search_bar_location) pyautogui.write('接收者昵称/群聊名称') # 输入对方的名字或者群聊标题 pyautogui.press('enter') msg_content = "这条信息是由机器人发出的" pyautogui.typewrite(msg_content) pyautogui.press('enter') ``` 以上三种策略各有优劣之处,具体选用哪一种取决于个人喜好、项目需求及环境条件等因素。值得注意的是,无论采取何种技术路线都应当遵循相关法律法规和服务条款的规定,确保合法合规地开展此类活动。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技术职场教练

您的是我坚持原创免费作品的不懈

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值