En este artículo, aprenderemos cómo tomar capturas de pantalla a intervalos aleatorios con Python.
Método 1: Usar pyautogui.screenshot()
pyautogui: la biblioteca pyautogui proporciona el método de captura de pantalla(), el método de captura de pantalla() se usa para tomar una captura de pantalla. Usaremos la biblioteca aleatoria y el método sleep() para tomar capturas de pantalla a intervalos aleatorios.
Sintaxis : pyautogui.screenshot()
randint(): El método randint() devuelve un número entero del rango especificado.
Sintaxis: random.randint(inicio, parada)
Parámetros:
- Un entero que especifica el comienzo del rango.
- Un entero que especifica el final del rango.
Devoluciones: Devuelve un número entero.
Ejemplo:
En este ejemplo, se generó un retraso aleatorio entre 1 y 5 segundos antes de tomar una captura de pantalla. genere un número aleatorio entre 1 y 5 y cree un retraso de tiempo usando el método sleep(). Las capturas de pantalla se guardarán en la ubicación exacta del programa con el nombre del archivo como la hora actual. Los siguientes pasos son:
- Importar bibliotecas pyautogui, random y time.
- Tome una captura de pantalla usando el método de captura de pantalla() y espere un momento
- Cree el retraso aleatorio usando el método randint() y sleep().
- guarde las capturas de pantalla con el nombre de la hora actual.
Python3
# importing pyautogui random and time # libraries import pyautogui import random import time # Running the while loop for infinite time while True: # generating a random number between 1 # to 5 which will represent the time # delay random_time = random.randint(1, 5) # create a time delay using the sleep() # method time.sleep(random_time) # Take the screenshot using screenshot() # method myScreenshot = pyautogui.screenshot() # Save the screenshot shot using current # time as file name. file_name = str(time.time())+".png" myScreenshot.save(file_name)
Salida: Las siguientes imágenes son capturas de pantalla tomadas al azar al ejecutar el código anterior.
Método 2: Usar ImageGrab.grab()
La biblioteca de Pillows (PIL) tiene un módulo ImageGrab que se puede usar para copiar el contenido de la pantalla o el portapapeles a una memoria de imágenes PIL.
Instalación de Pillow
pip install Pillow
grab(): El método grab() se usa para tomar una captura de pantalla de la pantalla. Los píxeles dentro del cuadro delimitador se devuelven como una imagen «RGBA» en macOS, o una imagen «RGB» de lo contrario. Si se omite el cuadro delimitador, se copia toda la pantalla.
Así que ahora, para tomar capturas de pantalla a intervalos de tiempo aleatorios, haremos uso de los métodos grab(), sleep() y random(). grab() se usará para tomar instantáneas, randint() y sleep() se usarán para crear retrasos en intervalos de tiempo aleatorios.
Sintaxis: PIL.ImageGrab.grab(bbox=Ninguno, include_layered_windows=False, all_screens=False, xdisplay=Ninguno)
Parámetros:
- bbox – Qué región copiar. El valor predeterminado es la pantalla completa
- Incluye ventanas en capas : valor booleano
- all_screens : captura todos los monitores. Solo sistema operativo Windows.
Retorno: una imagen
Ejemplo:
En el código anterior, se generó un retraso aleatorio entre 1 y 5 segundos antes de tomar una captura de pantalla usando el método grab(). genere un número aleatorio entre 1 y 5 y cree un retraso de tiempo usando el método sleep(). Las capturas de pantalla se guardarán en la ubicación exacta del programa con el nombre del archivo como la hora actual.
- Importe bibliotecas PIL, aleatorias y de tiempo.
- Tome una captura de pantalla usando el método grab() y espere un momento
- Cree el retraso aleatorio usando el método randint() y sleep().
- guarde las capturas de pantalla con el nombre de la hora actual.
Python3
# importing ImageGrab class from PIL import ImageGrab # importing random module import random # importing time module import time # Running the while loop for infinite time while True: # generating a random number between # 1 to 5 , which will represent the # time delay random_time = random.randint(1, 5) # create a time delay using the sleep() # method time.sleep(random_time) # Take the screenshot using grab() # method snapshot = ImageGrab.grab() # Save the screenshot shot using current time # as file name. file_name = str(time.time())+".png" snapshot.save(file_name)
Producción:
Método 3: Usando shot() desde el módulo MSS
MSS es un módulo multiplataforma ultrarrápido de capturas de pantalla en Python puro que utiliza ctypes. Este módulo se puede utilizar para capturar capturas de pantalla.
Instalación de MSS
pip install mss
El método shot() se usa para tomar una captura de pantalla de la pantalla o monitor.
Sintaxis: mss_instance.shot(“destino_de_archivo”)
Parámetros:
- file_destination: el lugar donde se deben guardar las capturas de pantalla.
Ejemplo:
En el código anterior, se generó un retraso aleatorio entre 1 y 5 segundos antes de tomar una captura de pantalla. genere un número aleatorio entre 1 y 5 y cree un retraso de tiempo usando el método shot(). Las capturas de pantalla se guardarán en la ubicación exacta del programa con el nombre del archivo como la hora actual.
- Importe bibliotecas PIL, aleatorias y de tiempo.
- Cree una instancia de mss usando la palabra clave, tome una captura de pantalla usando el método shot() y espere un momento
- Cree el retraso aleatorio usando el método randint() y sleep().
- guarde las capturas de pantalla con el nombre de la hora actual.
Python3
# importing random module import random import mss # importing time module import time # Running the while loop for infinite time while True: # generating a random number between 1 # to 5 , which will represent the time # delay random_time = random.randint(1, 5) # create a time delay using the sleep() # method time.sleep(random_time) # Save the screenshot shot using current time # as file name. file_name = str(time.time())+".png" # Take the screenshot using shot() method with mss.mss() as mss_obj: mss_obj.shot(output=file_name)
Producción:
Publicación traducida automáticamente
Artículo escrito por pulamolusaimohan y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA