скриншот в Python

Как сделать скриншот в Python?

Cкриншот в Python — возможно ли? Спросил я себя после того, как не поверил результатам, полученным в результате сбора данных по количеству проголосовавших в петициях (об этом я писал ранее), после чего понял, что статистика вполне правдивая, но для полноты правдивости не хватает приложенных скриншотов. Давайте исправим эту оплошность, и разберемся, как сделать скриншот в Python.

В этом нам поможет волшебная библиотека PyAutoGUI, которая по заверениям разработчиков поможет в эмуляции нажатия кнопок на клавиатуре, движения мышки и даже горячих клавиш 🙂 Об этом мы поговорим позднее (библиотека и правда хороша, в связи с чем постараюсь в ближайшее время сделать ее небольшой, но более внятный обзор с примерами кода), а пока же — разберемся с созданием скриншотов.

  1. import pyautogui #Подключаем библиотеку
  2. import time  #Подключаем библиотеку для работы со временем
  3.  
  4. x = 1 #Создали переменную, которая поможет в работе со временем
  5. while x < 5: #Создаем цикл, который будет работать пока значение х не станет равным 5
  6.     pyautogui.screenshot('c:\\Users\\oleks\\Desktop\\Git\\Netology\\PrintScr\\image' + str(x) + '.png') #Просим библиотеку делать скриншот, и сохранять в папку по указанному адресу с именем "image.png", причем порядковый номер будет меняться в зависимости от значения х (более правильным, думаю, будет использовать в качестве номера метку времени, но для начала давайте сделаем код в подобном виде)
  7.     x = x + 1 #Увеличиваем значение х на единицу
  8.     time.sleep(5) #Пауза в 5 секунд

И да, если вам нужно сделать скриншот в Python определенного размера — используйте следующую конструкцию:

  1. pyautogui.screenshot('c:\\Users\\oleks\\Desktop\\Git\\Netology\\PrintScr\\image' + str(x) + '.png', region=(0, 0, 300, 400)) #Где значения в скобках: 0, 0 - начальное значение выделенного куска по вертикали-горизонтали, 300, 400 - конечные значения выделенного куска по вертикали-горизонтали

Короткий видеоурок по данной теме:

Спасибо за внимание 🙂