github 可以做网站吗/广州最新发布最新

github 可以做网站吗,广州最新发布最新,网站如何做微信推广,用博客做网站No24: PyAutoGUI 实现桌面自动化 摘要 PyAutoGUI 是一个跨平台的桌面自动化工具,能够模拟鼠标点击、键盘输入、屏幕截图与图像识别,适用于重复性桌面任务(如表单填写、游戏操作、批量文件处理)。本集通过代码截图输出日志的实战形…

No24: PyAutoGUI 实现桌面自动化


摘要

PyAutoGUI 是一个跨平台的桌面自动化工具,能够模拟鼠标点击、键盘输入、屏幕截图与图像识别,适用于重复性桌面任务(如表单填写、游戏操作、批量文件处理)。本集通过代码+截图+输出日志的实战形式,带你掌握从基础操作到复杂任务的全流程自动化。


在这里插入图片描述

核心概念与代码实战

1. 基础操作:鼠标与键盘控制

安装命令

pip install pyautogui  

鼠标控制

import pyautogui  
import time  # 移动鼠标到坐标 (500, 300)  
pyautogui.moveTo(500, 300, duration=1)  # 模拟点击(左键单击)  
pyautogui.click()  # 滚轮滚动(向上滚动 200 单位)  
pyautogui.scroll(200)  

键盘输入

# 输入文本  
pyautogui.write("Hello, PyAutoGUI!", interval=0.1)  # 组合键操作(Ctrl+C)  
pyautogui.hotkey("ctrl", "c")  

效果验证

print(f"当前鼠标位置:{pyautogui.position()}")  # 输出实时坐标  

2. 截屏与图像识别

场景:通过屏幕上的图标定位并点击按钮。

# 截取屏幕并保存  
screenshot = pyautogui.screenshot()  
screenshot.save("screenshot.png")  # 查找图标位置(需提前保存图标图片)  
button_location = pyautogui.locateOnScreen("submit_button.png")  
if button_location:  # 计算图标中心点并点击  button_center = pyautogui.center(button_location)  pyautogui.click(button_center)  
else:  print("图标未找到!")  

输出示例

图标位置:Box(left=200, top=150, width=50, height=30)  

3. 脚本调试与异常处理

问题场景:图像识别失败导致脚本崩溃。
解决方案

try:  # 设置超时时间为 5 秒  button_location = pyautogui.locateOnScreen(  "save_icon.png",  confidence=0.8,  # 允许 80% 相似度  grayscale=True   # 灰度匹配提升速度  )  if not button_location:  raise Exception("图标匹配失败!")  
except Exception as e:  print(f"错误:{e}")  # 回退到手动输入坐标  pyautogui.click(100, 200)  

调试技巧

  • 使用 pyautogui.PAUSE = 1 控制操作间隔
  • 启用 pyautogui.FAILSAFE = True(鼠标移至左上角强制停止脚本)

实战案例

案例 1:自动化填写表单

场景:批量填写 Excel 表格中的数据到某个桌面应用。

import pyautogui  
import pandas as pd  # 读取 Excel 数据  
data = pd.read_excel("data.xlsx")  for index, row in data.iterrows():  # 定位输入框并填写  pyautogui.click(300, 400)  # 姓名输入框  pyautogui.write(row["姓名"])  pyautogui.press("tab")      # 跳转到年龄输入框  pyautogui.write(str(row["年龄"]))  # 提交表单  pyautogui.press("enter")  time.sleep(1)  # 等待页面刷新  

输出示例

已提交姓名:张三,年龄:25  
已提交姓名:李四,年龄:30  
案例 2:模拟游戏中的简单操作

场景:自动玩“键盘反应速度”游戏。

# 监听屏幕特定区域的变化  
game_region = (400, 200, 200, 100)  while True:  # 截取游戏区域  region_screenshot = pyautogui.screenshot(region=game_region)  # 检测红色方块出现  if pyautogui.pixelMatchesColor(500, 250, (255, 0, 0)):  pyautogui.press("space")  # 按空格键得分  
案例 3:批量重命名文件

场景:将文件夹中的 100 张图片按规则重命名。

import os  
import pyautogui  # 打开文件资源管理器  
os.system("explorer.exe .\\images")  
time.sleep(2)  # 依次重命名文件  
for i in range(1, 101):  pyautogui.hotkey("ctrl", "a")    # 全选文件  pyautogui.press("f2")            # 重命名  pyautogui.write(f"photo_{i:03d}")  # 格式化名称(photo_001)  pyautogui.press("enter")  time.sleep(0.5)  

扩展思考

1. PyAutoGUI 与其他工具的结合
  • 与 Selenium 结合
    # 用 Selenium 处理网页,PyAutoGUI 处理下载弹窗  
    driver.get("https://example.com/download")  
    pyautogui.press("enter")  # 自动确认下载对话框  
    
  • 打包为可执行文件
    pip install pyinstaller  
    pyinstaller --onefile your_script.py  
    
2. 安全性和法律合规性
  • 风险提示
    • 避免自动化操作金融交易、社交账号等敏感场景
    • 部分软件(如游戏)可能禁止自动化脚本
  • 合规建议
    • 仅用于个人效率提升或授权场景
    • 遵守《计算机软件保护条例》和平台规则

总结

通过本实战,你已掌握:

  1. PyAutoGUI 的核心操作(鼠标、键盘、图像识别)
  2. 复杂任务的异常处理与调试技巧
  3. 从表单填写到游戏模拟的完整案例
  4. 自动化脚本的法律边界与安全实践

下集预告
《No25: Python 并发编程:从多线程到异步 IO》将带你突破单线程性能瓶颈,实现高并发任务处理!


附:运行环境

  • 环境要求:Python 3.7+、Windows/macOS/Linux

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/72412.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一周学会Flask3 Python Web开发-SQLAlchemy查询所有数据操作-班级模块

锋哥原创的Flask3 Python Web开发 Flask3视频教程: 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili 我们来新建一个的蓝图模块-班级模块,后面可以和学生模块,实现一对多的数据库操作。 blueprint下新建g…

Neural Architecture Search for Transformers:A Survey

摘要 基于 Transformer 的深度神经网络架构因其在自然语言处理 (NLP) 和计算机视觉 (CV) 领域的各种应用中的有效性而引起了极大的兴趣。这些模型是多种语言任务(例如情绪分析和文本摘要)的实际选择,取代了长短期记忆 (LSTM) 模型。视觉 Tr…

TCP 全连接队列 内核层理解socket

TCP 全连接队列 理解 listen 的第二个参数 int listen(int sockfd, int backlog);backlog 参数表示 全连接队列(accept 队列)的最大长度。 那什么是全连接队列呢? 三次握手 & accept() 处理流程 客户端发送 SYN,服务器收到并…

OpenEuler-22.03-LTS上利用Ansible轻松部署MySQL 5.7

一、需求 使用ansible自动化部署mysql二进制部署mysql部署mysql并创建JDBC用户 二、环境信息 本文涉及的代码,配置文件地址: 链接:百度网盘 请输入提取码 提取码:1g6y 软件名称版本备注Ansible2.9.27All modules — Ansible Doc…

基于javaweb的SpringBoot农资商城购物商城系统设计与实现(源码+文档+部署讲解)

技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论…

angular打地鼠

说明:我计划用angular做一款打地鼠的小游戏, 打地鼠游戏实现文档 🎮 游戏逻辑 ​游戏场景 采用 3x3 网格布局的 9 个地鼠洞​核心机制 地鼠随机从洞口弹出点击有效目标获得积分30 秒倒计时游戏模式 ​难度系统 简单模式:生成间…

博客网站(springboot)整合deepseek实现在线调用

🎉🎉🎉🎉🎉🎉 欢迎访问的个人博客:https://swzbk.site/,加好友,拉你入福利群 🎉🎉🎉🎉🎉🎉 1、de…

Kubernetes 单节点集群搭建

Kubernetes 单节点集群搭建教程 本人尝试基于Ubuntu搭建一个单节点K8S集群,其中遇到各种问题,最大的问题就是网络,各种镜像源下载不下来,特此记录!注意:文中使用了几个镜像,将看来可能失效导致安…

专题三0~n-1中缺失的数字

1.题目 给一个数组,单调性是递增的,需要找到缺失的数字,加上这个数字就变为等差数组了。 2.算法原理 这里用二分来解决,而二段性是根据下标区分,临界值前的数字于下标相对应,临界值后的于下标相差1&#x…

【图像处理】ISP(Image Signal Processor) 图像处理器的用途和工作原理?

ISP(图像信号处理器)是数字影像设备的“视觉大脑”,负责将传感器捕获的原始电信号转化为我们看到的高清图像。以下从用途和工作原理两方面通俗解析: 一、ISP的核心用途:让照片“更像眼睛看到的” 提升画质&#xff1a…

python学习笔记-mysql数据库操作

现有一个需求,调用高德api获取全国县级以上行政区数据并保存为json文件,使用python获取: import requests import json# 高德API Key api_key "your_api_key"# 调用行政区域查询API def fetch_districts():url f"https://r…

Redisson 实现分布式锁源码浅析

大家好,我是此林。 今天来分享Redisson分布式锁源码。还是一样,我们用 问题驱动 的方式展开讲述。 1. redis 中如何使用 lua 脚本? Redis内置了lua解释器,lua脚本有两个好处: 1. 减少多次Redis命令的网络传输开销。…

【软件】免费的PDF全文翻译软件,能保留公式图表的样式

转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你,欢迎[点赞、收藏、关注]哦~ 很多PDF全文翻译软件都是收费的,而划线翻译看着又很累。这个开源的PDF全文翻译软件非常好用,并且能够保留公式、图表、目录和注…

PentestGPT 下载

PentestGPT 下载 PentestGPT 介绍 PentestGPT(Penetration Testing GPT)是一个基于大语言模型(LLM)的智能渗透测试助手。它结合了 ChatGPT(或其他 GPT 模型)与渗透测试工具,帮助安全研究人员自…

防火墙虚拟系统实验

一实验拓扑 二实验过程 配置资源 创建虚拟系统 配置管理员 创建安全策略

Linux与深入HTTP序列化和反序列化

深入HTTP序列化和反序列化 本篇介绍 在上一节已经完成了客户端和服务端基本的HTTP通信,但是前面的传递并没有完全体现出HTTP的序列化和反序列化,为了更好得理解其工作流程,在本节会以更加具体的方式分析到HTTP序列化和反序列化 本节会在介绍…

基于Python+SQLite实现(Web)验室设备管理系统

实验室设备管理系统 应用背景 为方便实验室进行设备管理,某大学拟开发实验室设备管理系统 来管理所有实验室里的各种设备。系统可实现管理员登录,查看现有的所有设备, 增加设备等功能。 开发环境 Mac OSPyCharm IDEPython3Flask&#xff…

深拷贝and浅拷贝!

一、什么是拷贝?什么是深拷贝和浅拷贝? (1)拷贝:拷贝就是为了复用原对象的部分or全部数据,在原对象的基础上通过复制的方式创建一个新的对象。 拷贝对象可以分为三种类型:直接赋值、浅拷贝和深拷…

高频面试题(含笔试高频算法整理)基本总结回顾43

干货分享,感谢您的阅读! (暂存篇---后续会删除,完整版和持续更新见高频面试题基本总结回顾(含笔试高频算法整理)) 备注:引用请标注出处,同时存在的问题请在相关博客留言…

网络爬虫【简介】

我叫补三补四,很高兴见到大家,欢迎一起学习交流和进步 今天来讲一讲视图 一、网络爬虫的定义 网络爬虫(Web Crawler),又称为网络蜘蛛、网络机器人等,是一种按照一定规则自动抓取互联网信息的程序或脚本。它…