利用Python发送微信消息的方法

自动化模拟:Python操控微信发送消息
本文介绍了如何使用Python通过快捷键和剪贴板操作模拟微信,实现快速定位搜索、发送消息,展示了具体步骤和所需模块。
该文章已生成可运行项目,

微信是支持用快捷键打开主界面的,这个可以在微信的设置里看到,如下图所示

 

我们就可以利用这一特性,用Python模拟按快捷键的操作,用来打开微信主界面。

打开主界面之后,使用Ctrl+F,定位到微信的搜索框,那之后又怎么输入内容呢?

我们可以使用Python操作系统的剪切板和模拟快捷键,把要输入的内容先放到剪切板里,再定位到搜索框之后,再粘贴到搜索框里。

 

内容粘贴进去后,微信会自动进行搜索,这时再按回车键,就可以打开搜索出的群、朋友或是图中的文件传输助手,且打开之后会自动将焦点定位到输入框。

这时我们再利用剪切板,把要发送的信息放到剪切板里,再粘贴到输入框中,再模拟按回车键发送消息。

 要模拟快捷键和操作剪切板,需要用到下面两个模块

pip install pyautogui
pip install pyperclip
# 引入pyautogui模块以操作快捷键
import pyautogui
# 引入pyperclip模块以操作剪切板
import pyperclip

下面是示例代码,需要注意的是,每一步操作之后,都需要使用 time.sleep() 暂停会儿,给微信一点反应的时间,要不然上一步还没完事,下一步就开始了,会出错。

经过测试,2秒比较合适。

WxTarget = "文件传输助手"
HotkeyDelay = 2

def sendWxMessage(msg):
    try:
        # 清空剪切板并将目标写入到剪切板
        pyperclip.copy("")
        pyperclip.copy(WxTarget)
        # 打开微信窗
        pyautogui.hotkey("ctrl", "alt", "w")
        time.sleep(HotkeyDelay)
        # 使用快捷键ctrl+f定位到微信搜索栏
        pyautogui.hotkey("ctrl", "f")
        time.sleep(HotkeyDelay)
        # 使用快捷键ctrl+v将目标粘贴到微信搜索栏,微信将自动搜索
        pyautogui.hotkey("ctrl", "v")
        time.sleep(HotkeyDelay)
        # 按回车键打开搜索出的目标
        pyautogui.press("enter")
        time.sleep(HotkeyDelay)
        # 清空剪切板并将未点检信息写入到剪切板
        pyperclip.copy("")
        pyperclip.copy(msg)
        # 使用快捷键ctrl+v将信息粘贴到微信输入框,按回车发送消息
        pyautogui.hotkey("ctrl", "v")
        time.sleep(HotkeyDelay)
        pyautogui.press("enter")
        # log
        logWriter("发送微信消息")
    except Exception as ex:
        logWriter("发送微信消息出现异常: " + str(ex))
        sys.exit(0)

 

本文章已经生成可运行项目
### 使用Python发送微信消息 #### 发送个人微信消息 对于向个人微信发送消息,存在一些第三方库可以帮助完成此操作。其中一种方法利用itchat这个开源项目来实现自动化交互功能[^1]。 ```python import itchat # 自动登录并保持会话 itchat.auto_login(hotReload=True) # 查找联系人 friends = itchat.search_friends(name='朋友名字') if friends: friend = friends[0] # 向找到的好友发送文本信息 itchat.send_msg('你好', toUserName=friend['UserName']) else: print("未找到该好友") # 关闭连接 itchat.logout() ``` 需要注意的是这种方式依赖于模拟浏览器行为来进行操作,并不是官方支持的方式,在某些情况下可能会遇到限制或者被封禁的风险。 #### 通过企业微信API发送消息 另一种更为稳定可靠的选择就是借助企业微信的服务能力。这需要先注册成为开发者账号并且创建应用获得相应的凭证之后才能正常使用其提供的RESTful API接口服务[^2]。 当涉及到具体的消息类型时: - **文本消息** 可以构建简单的JSON对象作为负载体传递给服务器端口。 ```json { "msgtype": "text", "text": { "content": "这是测试内容" } } ``` - 对于更复杂的数据结构比如图片、语音等多媒体资源,则需按照文档说明准备对应的字段格式上传至指定位置后再关联到聊天记录当中去。 下面是基于`requests`模块的一个简单例子用于展示怎样调用webhook形式的企业微xin群聊机器人接口发送纯文本通知: ```python import requests from json import dumps def send_wecom_message(webhook_url, content): headers = {'Content-Type': 'application/json'} data = {"msgtype": "text", "text": {"content": str(content)}} response = requests.post( url=webhook_url, headers=headers, data=dumps(data).encode('utf-8') ) result = response.json() if result.get('errcode') != 0: raise Exception(f"Failed with error code {result.get('errmsg')} ({result.get('errcode')})") send_wecom_message('https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=your-webhook-key-here', 'Hello World!') ``` 上述代码片段展示了如何定义一个函数来封装对企业微信Webhook API 的POST请求逻辑,以及实际调用的过程。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值