Using the steps below, you will be able to take screenshots from a list of URLs today using Python 3, Selenium and ChromeDriver.
Step 1: Install Python 3, Selenium and ChromeDriver
Required tools for this tutorial:
- Python 3: Install Python
- Selenium: view the documentation to install Selenium for your operating system.
- ChromeDriver: install ChromeDriver.
Step 2: Create the Script
The script below will loop through the list of provided urls and save a screenshot of the url in your current directory.
from selenium import webdriver from selenium.webdriver.chrome.options import Options import time # Provide a list of urls to create screenshots from links = ['http://example1.com','http://example2.com'] # The Chrome and ChromeDriver Paths will vary based on your Operating System. # This example shows how to configure ChromeDriver for Mac CHROME_PATH = '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome' CHROMEDRIVER_PATH = '/usr/local/bin/chromedriver' # Set the Browser Size WINDOW_SIZE = "1200,1200" # Configure Chrome Options chrome_options = Options() chrome_options.add_argument("--headless") chrome_options.add_argument("--window-size=%s" % WINDOW_SIZE) chrome_options.binary_location = CHROME_PATH driver = webdriver.Chrome(executable_path=CHROMEDRIVER_PATH, options=chrome_options) # Loop through the list of urls and save the screenshot for link in links: driver.get(link) # sleep for 2 seconds to allow the page to fully load. time.sleep(2) # create a clean filename from the url str = link.split('://')[1] filename = str.replace('/','__') image = filename.replace('.','_') + ".png" # save the screenshot driver.save_screenshot(image) # Close Selenium driver.close()
Need help or have questions? Let us know in the comments below.