Спасибо… полотенцесушитель с датчиком движения. Ты никогда не работаешь, поэтому я выгляжу так, будто машу рукой настенному роботу.
- Джимми Фэллон через BrainyQuote

Меня интересовала автоматизация наших задач. Одним из моих самых запоминающихся вдохновений была сцена из «Зеленого шершня», где Джей Чоу, играя технически подкованного Като, готовит изумительную чашку латте, которую вы можете попробовать и почувствовать запах через экран, используя красивый, сложный на вид кофе. машина (которую он построил!), нажав несколько кнопок и потянув несколько рычагов!

Я также помню, когда я закончил колледж и работал на временной работе, на которой я в основном вводил данные, что мне было очень скучно. Я бы хотел, чтобы у меня была программа, которая бы выполняла эту работу за меня! (есть, но мы не будем это здесь рассказывать).

Я недавно взял в руки книгу под названием «Автоматизируйте скучные вещи с помощью Python», написанную очень забавным и умным парнем по имени Эл Свигарт. В своей книге он рассказывает о том, как с помощью Python можно делать действительно крутые вещи, например, создавать водяные знаки на большом количестве фотографий одновременно и управлять мышью и клавиатурой через графический интерфейс. Я буду говорить о последней теме в этом посте.

В этой книге Свигарт описывает управление мышью и клавиатурой с помощью созданного им модуля под названием «PyAutoGui». С помощью этого модуля вы можете запрограммировать свой компьютер на такие действия, как перемещение мыши в указанное место, открытие программ для вас в выбранное время, прокрутка страниц вверх и вниз и многие другие приложения. В первый раз, когда я испортил PyAutoGui, я был потрясен, когда мой курсор мгновенно переместился к координате на моем экране, совершенно сам по себе! Мне казалось, что я показываю свой экран кому-то, у кого есть полный доступ к моему компьютеру. Оттуда меня зацепило - теперь я хотел посмотреть, что еще я могу сделать. Как насчет создания сценария, которому нравятся все чьи-то посты в Instagram?

Сначала я хотел понять, как работают координаты экрана компьютера. На сайте PyAutoGui Свигарта в документации подробно объясняется, как его использовать. На экране 1440x900 координаты (0,0) будут в верхнем левом углу экрана, а (1439,899) - в правом нижнем углу. Одно важное замечание: когда вы опускаете курсор вниз по экрану, координата увеличивается. Вот схема экрана и как читать координаты на экране 1920х1080 взята с сайта.

0,0       X increases -->
+---------------------------+
|                           | Y increases
|                           |     |
|   1920 x 1080 screen      |     |
|                           |     V
|                           |
|                           |
+---------------------------+ 1919, 1079

Когда я впервые начал думать о том, как я буду это делать, я протестировал его приложения, вручную введя координаты того, где щелкнуть и сколько раз он будет щелкать. На моем ноутбуке был загружен Instagram друга.

pyautogui.moveTo(35,689)
pyautogui.click(clicks=4, interval=0.5)
pyautogui.press('right')
pyautogui.moveTo(135,621)
pyautogui.click(clicks=3, interval=0.5)
pyautogui.press('right')
pyautogui.moveTo(134,568)
pyautogui.click(clicks=3, interval=0.75)
pyautogui.press('right')

Этот блок кода, по сути, переместился в координаты сердца Instagram, щелкнул по нему, а затем перешел на следующую страницу. Pyautogui.moveTo () указывает мыши перейти к этой координате. Pyautogui.click (), где есть настраиваемые параметры, щелкает указанное количество раз и ждет 0,5 между каждым щелчком. Pyautogui.press () нажимает указанную клавишу. Очень интуитивно понятно! Поскольку этот код был написан вручную, этот метод будет слишком длинным, особенно когда местоположение сердца Instagram перемещается после каждой следующей фотографии. На следующем шаге показано, как Pyautogui автоматически определяет местонахождение каждого сердца с помощью Pyautogui.locateOnScreen ().

С помощью этого метода вам нужно сохранить фотографию на вашем компьютере, где вы можете получить к ней доступ, вставив ее в соответствующий параметр. По сути, он ищет точное изображение с точностью до пикселя. Если хотя бы один пиксель отключен, он вернет None, и код сломается. Сначала я сделал снимок сердца, затем ввел имя файла, например, Pyautogui.locateOnScreen (heart.png). После обнаружения сердца я использовал другой метод под названием Pyautogui.center (‘heart.png’), который центрировал курсор на сердце. После этого я создал цикл, который щелкает по сердцу и нажимает кнопку «вправо», чтобы перейти к следующей фотографии.

Дальнейшие действия

Теперь, когда ему могут нравиться все чьи-то сообщения, я потенциально мог бы заставить его оставлять комментарий в конце сообщений, покидать экран, переходить к вашим общим друзьям и находить понравившуюся страницу другого человека в Instagram. Хотя это был простой проект, в котором использовался только Python, интересно отметить, что люди платили за этот тип службы ботов, чтобы автоматически подписываться на людей, оставлять много комментариев и публиковать изображения самостоятельно.