Автор оригинала: Pankaj Kumar.
Давайте научимся автоматизировать задачи с помощью PyAutoGUI на Python. Всякий раз, когда мы сталкиваемся с задачей, требующей повторения, мы пытаемся придумать методы, специально предназначенные для того, чтобы избежать ее. Такова человеческая природа.
Где-то в процессе напряженной работы над одной и той же задачей мы столкнулись с идеей, что мы можем создать что-то, что функционирует автоматически и должно соответствовать только заданному количеству условий для работы.
Будь то газонокосилка, которая требует батарей, и поле травы, или код, который печатает одну и ту же строку снова и снова.
Автоматизация стала огромной частью нашей человеческой жизни, и работа с автоматизацией позволяет нам сосредоточиться на других задачах во время процесса.
Однако автоматизация требует инструментов для работы, и именно здесь на первый план выходит модуль pyautogui
.
Модуль pyautogui
позволяет запущенному сценарию управлять мышью и клавиатурой, обеспечивая ввод данных так же, как и пользователь в системе, позволяя взаимодействовать между приложениями в системе.
Установите PyAutoGUI в Python
Мы можем установить PyAutoGUI в Python через менеджер пакетов PIP . Вы можете использовать те же строки для установки в любой операционной системе, которая работает с pip.
# Windows does not have any dependencies for installation pip install pyautogui # Mac has two dependencies for PyAutoGUI pip3 install pyobjc-core pip3 install pyobjc pip3 install pyautogui # Linux distributions require a single dependency installed pip3 install python3-xlib pip3 install pyautogui
Как только у нас будут зависимости (если таковые имеются) и установлен модуль, мы готовы к работе!
Работа с Python PyAutoGUI
Прежде чем работать со всеми замечательными функциями, предоставляемыми PyAutoGUI в Python, мы должны сначала импортировать модуль в скрипт.
# Importing the PyAutoGUI module import pyautogui as pag
В этой статье мы будем использовать псевдоним для модуля pyautogui
, который мы назвали выше как pag .
1. Основные функции PyAutoGUI
Прежде чем работать над каким-либо сценарием, нам лучше знать, какие компоненты выполняют какую задачу.
Тем не менее, pyautogui
в Python предоставляет большое разнообразие методов для работы с входными данными,
# Gets the size of the primary monitor. screenWidth, screenHeight = pag.size() # Gets the XY position of the mouse. currentMouseX, currentMouseY = pag.position() # Move the mouse to XY coordinates. pag.moveTo(100, 150) # Allows the script to click with the mouse. pag.click() # Move the mouse to XY coordinates and click it. pag.click(100, 200) # Find where button.png appears on the screen and click it. pag.click('button.png') # Double clicks the mouse. pag.doubleClick() # The writing functionality provided by PyAutoGUI imitates keyboard input pag.write('Hello world!') # Presses the Esc key. pag.press('esc') # The keyDown button causes the script to hold down on a specific key. pag.keyDown('shift') # You can pass a list of keys to press, which will be consecutively executed. pag.press(['left', 'left', 'left', 'left']) # Lets go of a certain key. pag.keyUp('shift') # The hotkey() function allows for a selection of keys for hotkey usage. pag.hotkey('ctrl', 'c') # Make an alert box appear and pause the program until OK is clicked. pag.alert('This is the message to display.')
Также важно отметить, что модуль также предоставляет ключевые слова для работы в скрипте, доступ к которым можно получить с помощью pyautogui.KEY_NAMES
.
2. Простая автоматизация с использованием PyAutoGUI в Python
Мы можем создать простую автоматизацию спама для непрерывной отправки сообщений на любой платформе, используя немного Python и модуль pyautogui
.
Давайте сначала импортируем несколько модулей для работы с необходимыми функциями.
# Importing the pyautogui module import pyautogui as pag # Importing time to delay the input speed import time # Working with Tkinter allows us to use a GUI interface to select the file to read from from tkinter import Tk from tkinter.filedialog import askopenfilename
Теперь, вот как вы доберетесь до создания спам-бота.
2.1. Укажите способ ввода.
Мы можем ввести данные вручную, набрав сообщение, но это не поможет даже автоматизировать рассылку спама.
Итак, давайте работать с файлами, чтобы проанализировать файл и записать его содержимое на платформу. Мы будем использовать модуль tkinter для выбора файла для чтения.
# The withdraw function hides the root window of Tkinter Tk().withdraw() # The askopenfilename() takes the file path from user selection. filename = askopenfilename()
Теперь у нас есть путь к файлу через функцию askopenfilename ()
. Этот путь хранится в переменной filename
.
2.2. Создайте задержку, регулирующую скорость спама.
Нам также нужно будет создать задержку между каждым сообщением, чтобы платформа могла принимать сообщения одно за другим, а не одно сообщение, перезаписывающее себя из-за задержки ввода платформы.
# We take the input of the user and strip it such that we only receive a numeric input. timeDelay = int(input("If you want a delay, enter the number of seconds for the delay : ").split()[0]) # In case the input time is designed to break the delay function, we can reset the timeDelay back to 1. if timeDelay < 1: timeDelay = 1 # We need to place the cursor in the right place to begin writing to the platform. time.sleep(5)
2.3. Спам с использованием PyAutoGUI!
Теперь мы можем использовать модуль pyautogui
для чтения каждого слова из файла и записи на платформу.
f = open(filename, "r") for word in f: time.sleep(timeDelay) pag.typewrite(word) pag.press("enter")
3. Полная реализация PyAutogui в Python
Теперь мы закончили с кодом, ваш окончательный код должен выглядеть примерно так,
import pyautogui as pag import time from tkinter import Tk from tkinter.filedialog import askopenfilename Tk().withdraw() filename = askopenfilename() print(filename) timeDelay = int(input("If you want a delay, enter the number of seconds for the delay : ").split()[0]) if timeDelay < 1: timeDelay = 1 time.sleep(5) f = open(filename, "r") for word in f: time.sleep(timeDelay) pag.typewrite(word) pag.press("enter")
Вывод
Теперь, когда вы закончили с этой статьей, вы знаете, что предлагает pyautogui
в Python и для чего вы можете его использовать.
Хотя мы не обязательно рекомендуем рассылать спам, возиться с ним вполне приемлемо 😉
Ознакомьтесь с другими нашими статьями, работающими с модулем Pandas , массивами Numpy и созданием игры Hi-Lo с использованием Pygame .