Take Screenshots at Random Intervals with Python
Last Updated :
25 Jul, 2022
In this article, we will learn how to take screenshots at Random Intervals with Python.
Method 1: Using pyautogui.screenshot()
pyautogui: The pyautogui library provides the screenshot() method, The screenshot() method is used to take a screenshot. We will use the random library and sleep() method to take screenshots at Random Intervals.
Syntax: pyautogui.screenshot()
randint(): The randint() method returns an integer number from the range specified.
Syntax: random.randint(start, stop)
Parameters:
- An integer specifying starting of range.
- An integer specifying ending of the range.
Returns: Returns an Integer.
Example:
In this example, a random delay was generated between 1 to 5 seconds before taking a screenshot. generate a random number between 1 to 5, and create a time delay using the sleep() method. The screenshots will be saved in the exact location of the program with the file name as the current time. The following steps are:
- Import libraries pyautogui, random, and time.
- Take a screenshot using the screenshot() method and wait for sometime
- Create the random delay using randint() method and sleep().
- save the screenshots with the name as the current time.
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)
Output: The following images are the randomly taken screenshots by running the above code.
Method 2: Using ImageGrab.grab()
The pillow (PIL) library has an ImageGrab module that can be used to copy the contents of the screen or the clipboard to a PIL image memory.
Installing PIllow
pip install Pillow
grab(): The grab() method is used to take a screenshot of the screen. The pixels inside the bounding box are returned as an “RGBA” on macOS, or an “RGB” image otherwise. If the bounding box is omitted, the entire screen is copied.
So now to take screenshots at random time intervals we will make use of grab() and sleep() and random() methods. the grab() will be used to take snapshots, randint() and sleep() will be used to create delay at random time intervals.
Syntax: PIL.ImageGrab.grab(bbox=None, include_layered_windows=False, all_screens=False, xdisplay=None)
Parameters:
- bbox – What region to copy. Default is the entire screen
- Includes layered windows - boolean value
- all_screens –Capture all monitors. Windows OS only.
Return: an image
Example:
In the above code, a random delay was generated between 1 to 5 seconds before taking a screenshot using grab() method. generate a random number between 1 to 5, and create a time delay using the sleep() method. The screenshots will be saved in the exact location of the program with the file name as current time.
- Import PIL, random, and time libraries.
- Take a screenshot using the grab() method and wait for sometime
- Create the random delay using randint() method and sleep().
- save the screenshots with the name as the current time.
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)
Output:
Method 3: Using shot() from MSS module
MSS is an ultra-fast cross-platform multiple screenshots module in pure python using ctypes. This module can be used to capture screenshots.
Installing MSS
pip install mss
The shot() method is used to take a screenshot of the screen or monitor.
Syntax: mss_instance.shot("file_destination")
Parameters:
- file_destination: The place where screenshots need to be saved.
Example:
In the above code, a random delay was generated between 1 to 5 seconds before taking a screenshot. generate a random number between 1 to 5, and create a time delay using the shot() method. The screenshots will be saved in the exact location of the program with the file name as the current time.
- Import PIL, random, and time libraries.
- Create an instance of mss using with keyword, Take a screenshot using the shot() method and wait for sometime
- Create the random delay using randint() method and sleep().
- save the screenshots with the name as the current time.
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)
Output:
Similar Reads
random.setstate() in Python Random module is used to generate random numbers in Python. Not actually random, rather this is used to generate pseudo-random numbers. That implies that these randomly generated numbers can be determined. random.setstate() The setstate() method of the random module is used in conjugation with the g
2 min read
Take and convert Screenshot to PDF using Python In order to take and convert a screenshot to PDF, firstly the PyAutoGUI can be used which is an automation library in python which can control mouse, keyboard and can handle many GUI control tasks. Secondly, for the conversion PIL(Python Imaging Library) of python can be used which provides image pr
3 min read
Select random value from a list-Python The goal here is to randomly select a value from a list in Python. For example, given a list [1, 4, 5, 2, 7], we want to retrieve a single randomly chosen element, such as 5. There are several ways to achieve this, each varying in terms of simplicity, efficiency and use case. Let's explore different
2 min read
How to take screenshots using python? Python is a widely used general-purpose language. It allows performing a variety of tasks. One of them can be taking a screenshot. It provides a module named pyautogui which can be used to take the screenshot. pyautogui takes pictures as a PIL(python image library) which supports opening, manipulati
1 min read
How to take screenshot using Selenium in Python ? Selenium offers a lot of features and one of the important and useful feature is of taking a screenshot. In order to take a screenshot of webpage save_screenshot() method is used. save_screenshot method allows user to save the webpage as a png file. Syntax : driver.save_screenshot("image.png") Argum
1 min read