Python — это язык программирования, который используется для разработки всех видов приложений, как настольных, так и веб-приложений. Он используется для расширенных целей, таких как обработка данных, машинное обучение и многое другое.
- Python богат различными полезными библиотеками, которые позволяют вам создавать программное обеспечение по вашему выбору за меньшее время.
- Используя модуль pyautogui в Python, мы можем сделать снимок экрана окна и сохранить его в нужном месте.
- Установка модуля
- В Linux(Ubuntu)
- Метод Screenshot()
- Как записать видео
- С использованием OpenCV
- Библиотека
- Pyautogui
- OpenCV
- Снимок изображения
- Screen Capture Fast
- Веб-сайт
- Windows
- Linux или MacOs
- Метод ImageGrab
Установка модуля
Мы предполагаем, что вы установили pip в свою систему. Используйте приведенный ниже код, чтобы установить модуль pyautogui на ваш компьютер с Windows.
pip install pyautogui
В Linux(Ubuntu)
При установке модуля Python pyautogui в Linux важно установить пакет scrot на компьютер с Linux. Без Scrot машина с Linux не сможет захватывать экран. Следуйте приведенной ниже команде, чтобы установить пакет scrot на ваш компьютер с Linux(Ubuntu).
sudo apt-get install scrot
После установки scrot используйте приведенную ниже команду, чтобы установить модуль pyautogui на ваш компьютер с Linux(Ubuntu).
pip install pyautogui
Метод Screenshot()
Метод Screenshot() модуля pyautogui можно использовать для снимка экрана. Используйте приведенный ниже код, чтобы сделать снимок экрана.
pyautogui.screenshot()
- После того, как снимок экрана сделан, важно указать место, где вы хотите сохранить этот файл. В приведенном ниже коде укажите путь, по которому вы хотите сохранить файл снимка экрана.
pyautogui.screenshot().save(r'file_path/filename.png') or screenshot = pyautogui.screenshot() screenshot.save(r'file_path/filename.png')
- Снимок экрана будет сделан сразу после запуска программы, поэтому у вас не будет времени выбрать конкретный экран.
- Чтобы это исправить, вы можете задержать выполнение фрагмента кода на 5 или 10 секунд, используя метод сна модуля времени.
Исходный код:
В этом коде мы использовали встроенный модуль времени Python, чтобы задержать процесс создания скриншота на 5 секунд. через 5 секунд этот фрагмент кода запускается myScreenshot = pyautogui.screenshot() и создается снимок экрана. после этого myScreenshot.save(r’https://i0.wp.com/pythonguides.com/home/master/Desktop/capture/screenshot.png’) этот код сохранил файл снимка экрана в том же месте.
Выход:
В приведенном ниже выводе вы можете заметить, что мы пытаемся захватить окно калькулятора. После запуска программы у нас есть 5 секунд, чтобы расположить окно приложения. Через 5 секунд будет создан новый файл со скриншотом.
Как записать видео
Видео — это рендеринг кадров в секунду таким образом, чтобы зритель считал, что он наблюдает за последовательностью действий.
Захват видео с экрана Python означает, что мы будем записывать все действия, происходящие на экране, и к этому файлу можно будет получить доступ позже.
В процессе записи видео с экрана участвуют три модуля:
- Модуль pyautogui используется для захвата изображений.
- Модуль NumPy создает массив этих изображений.
- С помощью модуля Opencv эти изображения группируются и конвертируются в видео любого формата.
Используйте команду ниже, чтобы установить opencv и numpy в вашей системе.
pip install opencv-python pip install numpy
Исходный код:
В этом коде для разных задач импортированы четыре модуля. Серия изображений была получена с помощью модуля pyautogui. Эти изображения упорядочиваются в массив с помощью numpy, а затем преобразуются в видео с помощью модуля Python OpenCV. Мы добавили задержку с помощью модуля времени.
import cv2 import numpy as np import pyautogui import time SCREEN_SIZE =(1920, 1080) fource = cv2.VideoWriter_fourcc(*'XVID') out = cv2.VideoWriter('output.mp4', fource, 20.0,(SCREEN_SIZE)) fps =30 prev = 0 while True: time_elapsed = time.time()-prev img = pyautogui.screenshot() if time_elapsed > 1.0/fps: prev = time.time() frame = np.array(img) frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) out.write(frame) cv2.waitKey(10000)
Выход:
В этом выводе: как только вы запустите программу, она начнет захват текущего окна. Используйте Ctrl + C, чтобы завершить процесс.
С использованием OpenCV
OpenCV — это модуль Python, используемый для обработки изображений.
Видео — это рендеринг кадров в секунду таким образом, чтобы зритель считал, что он наблюдает за последовательностью действий.
Захват видео с экрана Python означает, что мы будем записывать все действия, происходящие на экране, и к этому файлу можно будет получить доступ позже.
В процессе записи видео с экрана участвуют три модуля:
- Модуль pyautogui используется для захвата изображений.
- Модуль NumPy создает массив этих изображений.
- С помощью модуля Opencv эти изображения группируются и конвертируются в видео любого формата.
Используйте команду ниже, чтобы установить opencv и numpy в вашей системе.
pip install opencv-python pip install numpy
Исходный код:
В этом коде для разных задач импортированы четыре модуля. Серия изображений была получена с помощью модуля pyautogui. Эти изображения упорядочиваются в массив с помощью numpy, а затем преобразуются в видео с помощью модуля Python OpenCV. Мы добавили задержку с помощью модуля времени.
import cv2 import numpy as np import pyautogui import time SCREEN_SIZE =(1920, 1080) fource = cv2.VideoWriter_fourcc(*'XVID') out = cv2.VideoWriter('output.mp4', fource, 20.0,(SCREEN_SIZE)) fps =30 prev = 0 while True: time_elapsed = time.time()-prev img = pyautogui.screenshot() if time_elapsed > 1.0/fps: prev = time.time() frame = np.array(img) frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) out.write(frame) cv2.waitKey(10000)
Выход:
В этом выводе: как только вы запустите программу, она начнет захват текущего окна. Используйте Ctrl + C, чтобы завершить процесс.
Библиотека
В этом разделе мы рассмотрим библиотеку захвата экрана Python. Мы ищем самые популярные библиотеки, используемые для захвата скриншотов и видео на Python.
Pyautogui
Библиотека Pyautogui в Python используется для автоматизации взаимодействия с другими приложениями.
Используя метод screenshot() модуля pyautogui, мы можем сделать снимок экрана окна. Следуйте приведенной ниже команде, чтобы установить модуль Python pyautogui в вашей системе.
Поскольку мы используем pip, он будет работать во всех операционных системах.
pip install pyautogui
OpenCV
Python OpenCV — это библиотека с открытым исходным кодом для компьютерного зрения, машинного обучения и обработки изображений. Используя этот модуль, мы можем снимать видео с экрана.
OpenCV помогает только конвертировать файлы(неподвижные изображения) в видео. Модуль pyautogui помещается в цикл, и каждое изображение записывается, и с помощью numpy мы можем создать массив этих изображений.
Теперь этот массив можно преобразовать в видеоформат с помощью OpenCV. Следуйте приведенной ниже команде, чтобы установить OpenCV в вашей системе.
pip install opencv-python
Снимок изображения
Используя модуль Python PIL.ImageGrab, мы можем сделать снимок экрана нужных окон. Он предоставляет широкий выбор опций, таких как захват определенных частей окна или захват всех экранов, если пользователь использует несколько экранов.
Синтаксис:
PIL.ImageGrab.grab( bbox=None, include_layered_windows=False, all_screens=False, xdisplay=None )
- bbox: позволяет выбрать регион для копирования. по умолчанию — полноэкранный.
- include_layered_windows: включает все слои, но эта функция работает только в ОС Windows.
- all_screens: если пользователь использует несколько мониторов, то с помощью этой опции можно захватить все мониторы. Это работает только на Windows.
Screen Capture Fast
В этом разделе мы узнаем о Python Screen Capture Fast. Научимся быстро записывать контент на экране.
- Запись видео с экрана включает в себя 3 основных модуля. OpenCV, Numpy и pyautogui в Python.
- Используя pyautogui, мы продолжаем захватывать кадр до тех пор, пока программа не завершится. Затем с помощью numpy эти изображения помещаются в массив. В конце этот массив преобразуется в видеоформат с помощью python-opencv.
Исходный код:
Модули были импортированы для разных задач. Серия изображений была получена с помощью модуля pyautogui. Эти изображения упорядочиваются в массив с помощью numpy, а затем преобразуются в видео с помощью модуля Python OpenCV. Мы добавили задержку с помощью модуля времени.
import cv2 import numpy as np import pyautogui import time SCREEN_SIZE =(1920, 1080) fource = cv2.VideoWriter_fourcc(*'XVID') out = cv2.VideoWriter('output.mp4', fource, 20.0,(SCREEN_SIZE)) fps =30 prev = 0 while True: time_elapsed = time.time()-prev img = pyautogui.screenshot() if time_elapsed > 1.0/fps: prev = time.time() frame = np.array(img) frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) out.write(frame) cv2.waitKey(1000)
Выход:
В этом выводе программа начала запись текущего окна.
Веб-сайт
В этом разделе мы научимся делать снимки экрана веб-сайтов с помощью Python.
- Используя модуль Python Selenium, мы можем сделать снимок экрана любого веб-сайта.
- Python Selenium используется для автоматизации браузера с помощью веб-драйверов. Другими словами, мы можем регулировать любую активность в браузере без вмешательства человека.
- Python Selenium — основной инструмент, используемый для автоматизации и тестирования. Допустим, вы хотите протестировать форму на веб-сайте. Затем, используя селен, вы можете предоставить все инструкции для доступа к этой странице формы, а затем предоставить различные наборы входных данных. После запуска программы она автоматически откроет браузер, введите имя веб-сайта в поле URL-адреса, перейдет на целевую страницу и выполнит действие.
Используйте приведенную ниже команду для установки селена в вашу систему.
pip install selenium
- Веб-драйверы позволяют выполнять кросс-браузерное тестирование. Каждый веб-браузер(Chrome, Safari, Firefox) имеет разные веб-драйверы.
- Важно загрузить веб-драйвер, чтобы этот процесс заработал. В нашем случае мы работаем над Firefox, поэтому загрузим драйверы Firefox. Нажмите здесь, чтобы выбрать веб-драйвер.
- После загрузки веб-драйверов для них необходимо установить PATH. Следуйте приведенному ниже разделу, чтобы настроить PATH для веб-драйверов.
Windows
Если вы пользователь Windows, следуйте этим инструкциям, чтобы установить путь для веб-драйверов:
- Создать каталог C:\bin.
- Поместите загруженный файл драйвера в C:\bin.
- Используйте команду ниже, чтобы установить путь.
setx PATH "%PATH%;C:\bin"
- Перезапустите командную строку.
- Проверьте настройку chromedriver.exe -v
Linux или MacOs
Если вы являетесь пользователем Linux или Mac, следуйте этим инструкциям, чтобы установить PATH для веб-драйвера:
- Извлеките файл .tar.gz с помощью следующей команды. Обратите внимание, что имя или версия файла могут измениться в будущем.
tar -xf geckodriver-v0.30.0-linux64.tar.gz
- Переместите файл geckodriver в /usr/local/bin или /user/local/bin. Обратите внимание, что вам потребуется root-права.
sudo mv geckodriver /usr/local/bin
После завершения всех этих процессов вы можете приступить к написанию кода. В нашем коде мы открыли наш веб-сайт pythonguides.com и затем сделали его снимок экрана.
Исходный код:
В этом исходном коде мы импортировали веб-драйвер из Selenium и, чтобы добавить некоторую задержку, использовали модуль времени:
- driver = webdriver.Firefox() в этом коде мы инициализировали веб-драйвер. Вы увидите ошибку, если для веб-драйвера установлен неправильный путь.
- driver.get(url), с помощью этого кода мы открываем сайт, предоставленный пользователем.
- driver.get_screenshot_as_file(«capture.png») с помощью этого кода мы делаем снимок экрана веб-сайта.
from selenium import webdriver from time import sleep website = 'https://www.pythonguides.com' driver = webdriver.Firefox() driver.get(website) sleep(2) driver.get_screenshot_as_file("capture.png")
Выход:
В этом выводе вы можете видеть, что веб-сайт открывается автоматически после запуска программы. И через 2 секунды будет создан файл capture.png, который является снимком экрана этого веб-сайта.
Метод ImageGrab
В этом разделе мы узнаем, как сделать снимок экрана с помощью Python. Мы будем использовать метод ImageGrab модуля Pillow.
- Модуль Python Pillow добавляет интерпретатору Python возможности обработки изображений.
- Эта библиотека обеспечивает обширную поддержку форматов файлов, эффективное внутреннее представление и мощные возможности обработки изображений.
- Подушка представлена PIL и имеет метод ImageGrab, с помощью которого мы можем захватить текущую вдову с помощью Python.
- Он захватывает окно сразу после запуска программы, поэтому в нашем примере мы задержали этот процесс на 5 секунд, используя модуль времени Python.
Исходный код:
В этом коде мы использовали модуль ImageGrab, который принадлежит модулю Pillow или PIL в Python. Используя метод Grab() в модуле ImageGrab, мы можем сделать снимок экрана текущего экрана.
import PIL.ImageGrab import time time.sleep(5) img = PIL.ImageGrab.grab() img.show()
Выход:
В этом выводе после запуска кода программа даст нам 5 секунд, после чего она захватит текущее окно.