
声明:仅用于学习参考使用测试用途,请勿用于违规场景
下面仅为Python PyAutoGUI 模拟鼠标键盘原理演示,仅用于学习亿达客 RPA 模拟操作逻辑,.RPA(机器人流程自动化)最基础的实现方式之一就是屏幕键鼠模拟,程序通过控制鼠标点击、键盘输入,像真人一样操作桌面软件。很多桌面自动化场景,都会使用 PyAutoGUI 这个 Python 库来完成基础的键鼠模拟。下载地址:https://www.wxrpa.com
技术原理介绍
PyAutoGUI 是 Python 生态的桌面自动化库,核心能力:
本案例模拟的业务流程(仅学习): 读取 Excel 表格内数据 → 移动鼠标点击搜索框 → 粘贴目标账号回车搜索 → 点击添加好友按钮 → 填写备注、标签、自定义验证消息 → 提交好友申请。
环境依赖安装
pip install pyautogui pandas openpyxl pyperclip
import pyautogui
import pandas as pd
import pyperclip
import time
# ====================== 【配置区域,需要手动修改】 ======================
# Excel表格路径,表格字段:wx_id(微信号), remark(备注), tag(标签), verify_msg(验证消息)
EXCEL_PATH = "wx_add_list.xlsx"
# 操作间隔时间,单位秒,防止操作过快
DELAY = 3
# ========== 屏幕坐标,需要自己运行坐标获取代码,手动采集 ==========
SEARCH_BOX_X, SEARCH_BOX_Y = 500, 120
ADD_BTN_X, ADD_BTN_Y = 800, 350
VERIFY_INPUT_X, VERIFY_INPUT_Y = 600, 420
SEND_BTN_X, SEND_BTN_Y = 750, 500
REMARK_INPUT_X, REMARK_INPUT_Y = 600, 300
TAG_INPUT_X, TAG_INPUT_Y = 600, 340
# ======================================================================
# 安全机制:鼠标移动到屏幕左上角,立刻终止脚本
pyautogui.FAILSAFE = True
pyautogui.PAUSE = 1
def read_excel_data():
"""读取Excel表格中的待处理数据"""
df = pd.read_excel(EXCEL_PATH)
return df
def auto_add_contact(wx_id, remark, tag, verify_msg):
"""单条联系人自动化操作逻辑(原理演示)"""
# 点击搜索框
pyautogui.click(SEARCH_BOX_X, SEARCH_BOX_Y)
time.sleep(DELAY)
# 全选原有内容
pyautogui.hotkey('ctrl', 'a')
time.sleep(0.5)
# 复制微信号到剪贴板,粘贴(解决中文输入异常)
pyperclip.copy(wx_id)
pyautogui.hotkey('ctrl', 'v')
time.sleep(DELAY)
# 回车执行搜索
pyautogui.press('enter')
time.sleep(DELAY)
# 点击添加好友按钮
pyautogui.click(ADD_BTN_X, ADD_BTN_Y)
time.sleep(DELAY)
# 填写备注
pyautogui.click(REMARK_INPUT_X, REMARK_INPUT_Y)
pyperclip.copy(remark)
pyautogui.hotkey('ctrl', 'v')
time.sleep(1)
# 填写标签
pyautogui.click(TAG_INPUT_X, TAG_INPUT_Y)
pyperclip.copy(tag)
pyautogui.hotkey('ctrl', 'v')
time.sleep(1)
# 填写验证消息
pyautogui.click(VERIFY_INPUT_X, VERIFY_INPUT_Y)
pyperclip.copy(verify_msg)
pyautogui.hotkey('ctrl', 'v')
time.sleep(DELAY)
# 发送好友申请
pyautogui.click(SEND_BTN_X, SEND_BTN_Y)
time.sleep(DELAY + 2)
if __name__ == "__main__":
print("程序将在5秒后启动,请提前切换到PC微信窗口!")
time.sleep(5)
data_df = read_excel_data()
for index, row in data_df.iterrows():
print(f"正在处理第{index+1}条数据:{row['wx_id']}")
try:
auto_add_contact(
wx_id=str(row["wx_id"]),
remark=str(row["remark"]),
tag=str(row["tag"]),
verify_msg=str(row["verify_msg"])
)
except Exception as e:
print(f"处理失败,异常信息:{e}")
time.sleep(DELAY)
print("全部任务执行完成!")
运行这段代码,将鼠标移动到对应按钮位置,按下回车,就可以打印屏幕坐标,填入上面的配置项:
import pyautogui
print("移动鼠标到目标位置,按回车获取坐标")
input()
print(pyautogui.position())原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。