如何在Python中实现自动粘贴文本?解决WhatsApp垃圾消息机器人效率问题
WhatsApp垃圾消息机器人:解决长消息发送慢的问题
我用Python开发了一款适配WhatsApp网页版的垃圾消息机器人,运行脚本后打开网页版并选择联系人就能发送消息,但发现pyautogui.typewrite处理长消息时速度太慢,完全达不到快速发送的需求。于是想改用粘贴完整消息的方式提速,但修改后的代码并未如预期工作。
原始(可用但速度慢)代码
import pyautogui as pt import time # 获取垃圾消息参数 limit = input("Enter limit:") message = input("Enter message:") i = 0 time.sleep(5) # 循环发送直到达到次数限制 while i < int(limit): pt.typewrite(message) pt.press("enter") i += 1
尝试修改但无效的代码
import pyautogui as pt import time import clipboard # 获取垃圾消息参数 limit = input("Enter limit:") clipboard.copy(input("Enter message:")) i = 0 time.sleep(5) # 循环发送直到达到次数限制 while i < int(limit): pt.hotkey('command', 'v') pt.press("enter") i += 1
可行的解决方案
问题大概率出在剪贴板库的兼容性或操作时机上,改用pyperclip(跨平台兼容性更好的剪贴库)并优化操作逻辑即可解决:
修正后的代码
import pyautogui as pt import time import pyperclip # 获取垃圾消息参数 limit = int(input("输入发送次数:")) message = input("输入要发送的消息:") pyperclip.copy(message) # 将消息复制到剪贴板 i = 0 time.sleep(5) # 预留5秒时间切换到WhatsApp聊天输入框 while i < limit: # 可选:如果输入框未激活,先点击输入框位置(坐标可通过pt.position()获取) # pt.click(x=800, y=900) # 替换成你自己的输入框坐标 pt.hotkey('command', 'v') # Mac系统用command+v,Windows系统改为('ctrl', 'v') pt.press("enter") i += 1 time.sleep(0.1) # 微小延迟避免操作过于频繁导致失效
注意事项
- 先安装
pyperclip库:执行pip install pyperclip - 运行脚本后,务必在5秒内切换到WhatsApp网页版的聊天输入框
- 若使用Windows系统,将粘贴快捷键从
('command', 'v')改为('ctrl', 'v') - 如果发送时出现输入框未激活的情况,可添加
pt.click()操作,坐标通过pt.position()获取(运行该函数后移动鼠标到输入框即可得到坐标)
内容的提问来源于stack exchange,提问作者SirArman
相关产品推荐
相关产品推荐

