Рубрики
Без рубрики

Автоматизация с PyAutoGUI на Python

Давайте научимся автоматизировать задачи с помощью PyAutoGUI на Python. Всякий раз, когда мы сталкиваемся с задачей, требующей повторения, мы пытаемся придумать конкретные методы

Автор оригинала: 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 .

Рекомендации