Pyautogui что это — спросил я недавно Google, и не получил вразумительного ответа 🙁 Пора узнать: Pyautogui что это с примерами на русском 😉
Собственно — полная документация по библиотеке доступна на сайте разработчика 🙂 Но там на английском + куча лишнего текста (upd: решил сделать перевод технической документации на русский язык, вдруг вам пригодится? Читаем по ссылке 🙂 ). Потому и возникла мысль написать краткую шпаргалку для себя, и тех, кому это будет нужным.
Начнем с простого: Pyautogui — что это? Это библиотека, которая позволяет эмулировать действия пользователя как с клавиатурой (нажатия клавиш, ввод текста, горячие клавиши), так и с мышкой (правая/левая кнопка, нажатие, перенос). Работает это диво везде, где работает Python — а значит код, написанный в одном месте, будет работать в другом.
Давайте разберемся на практике:
Как запустить приложение с помощью Pyautogui:
import pyautogui
pyautogui.hotkey(‘Win’)
pyautogui.typewrite(‘Chrome’)
pyautogui.PAUSE = 5
pyautogui.keyDown(‘Enter’)
Как видно из кода:
1. Подключаем библиотеку
2. Инициализируем нажатие клавиши «Win»
3. Вводим в строку поиска Windows текст «Chrome»
4. Создаем паузу в 5 секунд (мало ли, вдруг компьютер будет долго думать?)
5. Инициализируем нажатие клавиши «Enter»
6. Радуемся
Как двигать мышкой и делать нажатие кнопки:
12548091046628eb3d62b6f_000000
Собственно, можно сделать эмулятор всех действий человека, и это весьма интересно 🙂 Например ниже — рабочий код, который накручивает виртуальную валюту на бирже Instagram-лайков:
-
import pyautogui
-
-
pyautogui.hotkey('Win')
-
pyautogui.PAUSE = 5
-
pyautogui.typewrite('Opera')
-
pyautogui.keyDown('Enter')
-
pyautogui.PAUSE = 5
-
pyautogui.moveTo(400, 60)
-
pyautogui.typewrite('1gram.ru')
-
pyautogui.PAUSE = 5
-
pyautogui.keyDown('Enter')
-
pyautogui.moveTo(750, 550)
-
pyautogui.click(button='left')
-
pyautogui.PAUSE = 5
-
pyautogui.moveTo(800, 600)
-
pyautogui.click(button='left')
-
pyautogui.typewrite('login')
-
pyautogui.PAUSE = 5
-
pyautogui.moveTo(800, 630)
-
pyautogui.click(button='left')
-
pyautogui.typewrite('password')
-
pyautogui.PAUSE = 5
-
-
#Авторизация закончена, начинаем кликать лайки
-
pyautogui.moveTo(800, 700)
-
pyautogui.click(button='left') #Выбрали только лайки
-
pyautogui.PAUSE = 5
-
pyautogui.moveTo(590, 475)
-
-
#Пускаем в цикл?
-
pyautogui.click(button='left') # Выбрали - выполнить задание
-
pyautogui.PAUSE = 5
-
-
#Нужно промотать вниз до упора
-
pyautogui.moveTo(1625, 327)
-
pyautogui.PAUSE = 5
-
pyautogui.dragTo(1625, 950, 2, button='left')
-
pyautogui.PAUSE = 5
-
pyautogui.moveTo(1132, 537)
-
pyautogui.click(button='left')
-
pyautogui.PAUSE = 5
-
pyautogui.moveTo(1612, 39)
-
pyautogui.PAUSE = 5
-
pyautogui.click(button='left')
-
while True:
-
pyautogui.moveTo(716, 638)
-
pyautogui.PAUSE = 5
-
pyautogui.click(button='left')
-
-
pyautogui.moveTo(1625, 327)
-
pyautogui.PAUSE = 5
-
pyautogui.dragTo(1625, 950, 2, button='left')
-
pyautogui.PAUSE = 5
-
pyautogui.moveTo(1100, 531)
-
pyautogui.click(button='left')
-
pyautogui.PAUSE = 5
-
pyautogui.moveTo(1612, 39)
-
pyautogui.PAUSE = 5
-
pyautogui.click(button='left')
Понятно, код можно и нужно оптимизировать, но как для кода, сделанного за 5 минут «на коленке» — весьма недурно 😉
Или — пример, который и привел меня к этой библиотеке: получение скриншота — этот вопрос я рассматривал в одной из предыдущих записей.
Спасибо за внимание 🙂 В случае возникновения вопросов — пишите на почту или в Telegram.
UPD: один из читателей блога написал письмо с тем, что представленный выше код создания скрина с помощью pyautogui не работает — вылетает ошибка (смотрим скрин ниже (скрин прислан читателем)):
При том, что сам код я проверил у себя:
-
import pyautogui # Подключаем библиотеку
-
-
screenshot = pyautogui.screenshot()
-
screenshot.save('screen.png')
у читателя код категорически не запускался. До корня проблемы добраться так и не смогли, однако — после того, как читатель переустановил библиотеку pyautogui — все заработало. Судя по всему имел место сбой в процессе установки библиотеки 🙁
ввод текста pyautogui