November 27, 2024

Самый простой способ автоматизации с помощью Python 

Привет.

Статья написана для тех, кто хочет автоматизировать определенные задачи без использования конструкторов вроде BAS или Zennoposter, а также имеет недостаточно знаний для написания полноценных скриптов с помощью Python.

Основной недостаток способа из статьи - невозможность работы в фоне.


Что нужно знать перед прочтением?

  • Предполагается, что вы знакомы с минимальным основами Python (переменными, ветвлениями, циклами и функциями).
  • Также предполагается, что вы сможете установить Python и удобную для вас IDE самостоятельно.

Взаимодействуя с чем-либо на вашей системе, чаще всего вам нужны лишь две вещи - мышь и клавиатура.

Исходя из этого вам понадобится всего два сторонних пакета - mouse и keyboard.


Установка окружения и библиотек

  • Создайте папку для будущего скрипта и откройте в ней командную строку (или терминал).
  • В терминале введите команды, чтобы создать виртуальное окружение и установить необходимые библиотеки:

python -m venv venv

.\venv\Scripts\activate - Для Windows

source venv/bin/activate - Для MacOS | Linux

  • Теперь установите сторонние пакеты:

pip install mouse keyboard

У вас есть готовое окружение для работы. Создайте файл main.py - здесь будет ваш будущий код.


Как узнать координаты мыши?

Прежде чем использовать библиотеку mouse, нужно понять куда перемещать курсор.

Это можно сделать с помощью простого скрипта, скопируйте код в другой файл и запустите его в том же виртуальном окружении.

import mouse


print('Press Ctrl + C to quit.')
try:    
    while True:        
        x, y = mouse.get_position()        
        positionStr = 'X: ' + str(x).rjust(4) + ' Y: ' + str(y).rjust(4)        
        print(positionStr, end='')        
        print('\b' * len(positionStr), end='', flush=True)
except KeyboardInterrupt:    
    print('\n')

После запуска наведите курсор на нужные области экрана и запомните их координаты.


Основные методы библиотеки mouse

import mouse


# Перемещает курсор мыши на указанные координаты.
mouse.move(x=100, y=200, duration=5) # x, y — координаты перемещения.
                                     # duration — длительность перемещения 
                                     # в секундах.

# Выполняет клик.
mouse.click(button='right')          # button — кнопка мыши 
                                     # ('left', 'right', 'middle').

# Выполняет двойной клик.
mouse.double_click(button='right')   # button — кнопка мыши
                                     # ('left', 'right', 'middle').

# Нажимает кнопку мыши (без отпускания).
mouse.press(button='left')           # button — кнопка мыши
                                     # ('left', 'right', 'middle').

# Отпускает кнопку мыши.
mouse.release(button='left')         # button — кнопка мыши
                                     # ('left', 'right', 'middle').

# Прокручивает колесо мыши.
mouse.wheel(delta=1000)              # delta — прокрут мыши.
                                     # Положительное число - прокрут вверх.
                                     # Отрицательное - прокрут вниз.

Основные методы библиотеки keyboard

import keyboard


# Вводит заданный текст.
keyboard.write(text='text', delay=0.5) # text — текст для ввода.
                                       # delay — задержка между нажатиями
                                       # клавиш в секундах.

# Нажимает клавишу (без отпускания).
keyboard.press(hotkey='shift+s')       # hotkey — клавиша или сочетание
                                       # клавиш.

# Отпускает клавишу.
keyboard.release(hotkey='shift')       # hotkey — клавиша или сочетание
                                       # клавиш.

# Нажимает и отпускает клавишу.
keyboard.send(hotkey='enter')          # hotkey — клавиша или сочетание
                                       # клавиш.

Пример готового скрипта

Разобравшись с основными методами библиотек, можно написать простой скрипт, который будет вводить текст в поисковую строку Google и открывать первую ссылку.

import time

import mouse
import keyboard


# Перемещаем курсор мыши в область поисковой строки.
mouse.move(x=500, y=400, duration=1)

# Клик для активации строки поиска.
mouse.click() # Можем не указывать параметр button, так как по умолчанию
              # он уже равен 'left'.

# Вводим запрос.
keyboard.write(text="Автоматизация на пайтон", delay=0.1)

# Нажимаем на Enter для начала поиска.
keyboard.send(hotkey='enter')

# Ждем загрузки страницы.
time.sleep(10)

# Перемещаем курсор на первую ссылку.
mouse.move(x=300, y=200, duration=1)

# Кликаем на нее.
mouse.click()

Остальное сможете реализовать самостоятельно, этих методов хватает для покрытия практически всех задач.

Всем добра.


Доп. материалы