使用PyAutoGUI在Python中进行垃圾邮件机器人

2025年3月15日 | 4分钟阅读

自动化改变了我们执行可重复任务的方式,节省了时间并降低了人为错误的发生率。为了简化工作,Python 提供了一系列用于自动化的库。其中一个库是 PyAutoGUI,它是广泛用于 GUI 自动化的 Python 库。它使您能够以编程方式控制鼠标和键盘,编写函数,并使事情变得简单,自动化您可以使用默认场景手动完成的几乎所有任务。

在接下来的教程中,我们将学习如何使用 PyAutoGUI 在 Python 中开发一个垃圾邮件机器人。

那么,让我们开始吧。

PyAutoGUI 简介

PyAutoGUI 是一个用 Python 自动化鼠标和键盘的简单方法。您可以模拟鼠标移动、点击、拖动、输入文本和截屏。它非常灵活,并且跨平台工作,因此可以在 WindowsMacOSLinux 上运行。这个包对于想要自动化日常任务的开发者、测试人员甚至高级用户来说都很有用,而不是将更多时间花在处理它上。

安装和设置

我们可以通过在命令提示符或终端中键入以下命令,使用 PIP 安装器将 PyAutoGUI 库安装到系统中

之后,您可以在 Python 脚本中导入它,从而让自动化执行其操作。

要在自动化中添加延迟或控制时间,您也可以使用 time 模块。这对于在窗口或应用程序之间切换很有用。

构建消息自动化机器人

概述完毕,让我们开始讨论如何使用 PyAutoGUI 来自动点赞或发送消息。这只是一个演示过程的示例,但它可以在一些实际用例中使用,例如测试或重复提交表单等。

简单的消息重复

例如,在文本字段(如记事本或聊天应用程序)中输入并发送消息多次。

示例 1

输出

 
This is an automated message.
This is an automated message.
This is an automated message.
This is an automated message.
This is an automated message.
This is an automated message.
This is an automated message.
This is an automated message.
This is an automated message.
This is an automated message.   

说明

  • time. sleep(5): 给您几秒钟时间切换到想要使用的应用程序,然后再执行自动化。
  • pyautogui.typewrite(message): 在活动文本字段中键入文本。
  • pyautogui.press('enter'): 模拟按下 Enter 键,发送消息。
  • time.sleep(1): 在每条消息之间添加一秒延迟,以防止消息泛滥。

示例 2

输出

 
2024-09-25 12:31:07.136018
2024-09-25 12:31:38.412949
2024-09-25 12:32:09.657070
Reminder: Take the Breakfast!
Reminder: Take the Lunch!
Reminder: Go for a walk!   

PyAutoGUI 自动化的一些优点

以下是使用 PyAutoGUI 库自动化任务的一些主要优点:

  1. 跨平台: PyAutoGUI 完全跨平台,无需修改即可在 Windows、macOS 和 Linux 上运行。开发者可以通过它受益,特别是当他们希望在多个环境中自动化任务而无需更改代码时。
  2. 直观且用户友好: PyAutoGUI 的 API 非常简单。即使是编程经验有限的新手,也可以轻松上手并开始进行基本的自动化。例如 `click()`、`moveTo()` 和 `typewrite()` 等函数不言自明,这使得用户可以轻松地用很少的代码来自动化任何任务。
  3. 无需应用程序特定的 API: 虽然其他自动化工具需要使用特定的 API(例如,浏览器使用 Selenium),但 PyAutoGUI 在屏幕级别工作。因此,它可以用于操作任何 GUI 应用程序,而无需 API 访问。您可以模拟类似人类的操作,以任何软件流程进行操作,而无需了解其内部功能。
  4. PyAutoGUI 具备您所需的自动化功能: 包括点击、输入文本等。它支持拖动、滚动、双击和截屏等功能。它对于自动化多步工作流非常有用:填写表单、与下拉菜单和菜单交互、执行批量操作等。
  5. 允许精确的计时控制: PyAutoGUI 允许您通过延迟来控制每个操作的速度和计时,这在尝试确保自动化脚本像一台运转良好的机器一样工作时非常宝贵。您可以使用 WebDriver Wait 明确设置延迟,然后在操作之间进一步添加暂停,以考虑加载时间或控制输入速度,使自动化更加逼真。