Tome capturas de pantalla a intervalos aleatorios con Python

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *