使用pyautogui和pyperclip实现微信自动发送信息

使用pyautogui和pyperclip实现微信自动发送信息

一、前言

在现代社交生活中,微信已成为不可或缺的交流工具。然而,手动发送信息往往耗时费力,尤其是在需要向多个好友发送相同或类似信息时。为了解决这一问题,本文介绍了一种通过Python脚本自动化操作微信的方法。利用pyautogui库模拟键盘和鼠标操作,结合pyperclip库实现文本复制粘贴,从而实现了向指定微信好友发送信息的自动化流程。这一方法能够显著提高信息发送的效率,适用于需要定时或批量发送信息的场景。

二、整体架构流程

脚本的主要功能是通过模拟键盘操作,打开微信并发送信息。以下是整体架构流程,结合代码片段进行分析:

  1. 导入所需库
import pyautogui
import pyperclip

pyautogui用于模拟键盘和鼠标操作,pyperclip用于复制粘贴文本。

  1. 定义发送信息函数
def fun_send_msg_by_weixin(freind_name, msg):
    # ...

该函数接受两个参数:好友名称freind_name和要发送的信息msg

  1. 设置操作间隔
pyautogui.PAUSE = 0.5

设置每一步操作的间隔为0.5秒,防止操作过快导致失败。

  1. 打开微信
pyautogui.hotkey('ctrl','alt', 'w')

使用热键打开微信。

  1. 搜索联系人
pyautogui.hotkey('ctrl','f')
pyperclip.copy(freind_name)
pyautogui.hotkey('ctrl','v')
pyautogui.hotkey('Enter')

打开搜索栏,复制并粘贴好友名称,按回车键搜索。

  1. 发送信息
pyperclip.copy(msg)
pyautogui.hotkey('ctrl', 'v')
pyautogui.hotkey('Enter')

复制并粘贴信息,按回车键发送。

  1. 关闭微信
pyautogui.hotkey('alt','f4')

使用热键关闭微信。

  1. 异常处理
try:
    # ... 操作代码 ...
except Exception as err:
    print(f'错误:{err}')
    bl_result=False
else:
    bl_result=True
finally:
    return bl_result

捕获并处理异常,返回操作结果。

三、技术细节

  • pyautogui库的使用pyautogui库提供了丰富的函数来模拟键盘和鼠标操作,如hotkey函数用于模拟组合键操作,sleep函数用于暂停脚本执行。
  • pyperclip库的使用pyperclip库简化了文本复制粘贴的操作,通过copy函数复制文本到剪贴板,通过paste函数粘贴文本。
  • 异常处理:使用try-except-else-finally结构捕获并处理异常,确保脚本的健壮性。
  • 操作间隔:设置pyautogui.PAUSE为0.5秒,防止操作过快导致微信无法正确响应。

四、结论

本文介绍了一种通过Python脚本自动化操作微信,向指定好友发送信息的方法。利用pyautoguipyperclip库,实现了从打开微信、搜索联系人、发送信息到关闭微信的全过程自动化。该脚本能够显著提高信息发送的效率,适用于需要定时或批量发送信息的场景。然而,需要注意的是,自动化操作微信存在潜在风险,如被微信官方检测到可能导致账号被封禁,因此在使用时需谨慎。

五、完整代码

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2024-06-16 16:34
# @Author : Leuanghing Chen
# @Blog : https://blog.youkuaiyun.com/weixin_46153372?spm=1010.2135.3001.5421
# @File : 1、微信自动发消息.py
# @Software : PyCharm

import pyautogui
import pyperclip


# 给微信好友发送信息
def fun_send_msg_by_weixin(freind_name, msg):
    print(f'使用微信给好友{freind_name}发送信息')
    bl_result=False
    try:
        pyautogui.PAUSE = 0.5     # 设置每一步操作的间隔(秒),可防止操作太快

        # 利用热键打开微信
        pyautogui.hotkey('ctrl','alt', 'w')     # 利用热键打开微信
        # pyautogui.sleep(1)  # 等待1秒

        # 查找联系人freind_name
        pyautogui.hotkey('ctrl','f')        # 打开微信好友搜索栏
        pyperclip.copy(freind_name)         # 复制好友名称freind_name
        # pyautogui.sleep(1)                  # 等待1秒

        pyautogui.hotkey('ctrl','v')        # 黏贴好友名称到微信搜索栏
        # pyautogui.sleep(1)                  # 等待1秒

        pyautogui.hotkey('Enter')           # 按回车键进行搜索,如有该好友则会自动跳转到好友聊天界面
        # pyautogui.sleep(1)                  # 等待1秒

        # 粘贴并发送信息
        pyperclip.copy(msg)

        pyautogui.hotkey('ctrl', 'v')       # pyautogui.sleep(1) # 等待1秒
        pyautogui.hotkey('Enter')
        # pyautogui.sleep(1)                  # 等待1秒



        # 关闭微信
        pyautogui.hotkey('alt','f4')
        # pyautogui.sleep(1)      # 等待1秒

    except Exception as err:
        print(f'使用微信给好友{freind_name}发送信息 错误:{err}')
        bl_result=False
    else:
        bl_result=True
    finally:
        return bl_result


if __name__ == '__main__':
    fun_send_msg_by_weixin('自己', '你好')       # '自己' 发送信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值