Monday, November 18, 2024
Google search engine
HomeLanguagesDownload Google Image Using Python and Selenium

Download Google Image Using Python and Selenium

In this article, we are going to see how to download google Image using Python and Selenium

Installation

On the terminal of your PC, type the following command. If it triggers any error regarding pip then you need to 1st install pip on windows manually by python get-pip.py command then you can run the following command.

pip install selenium

We also need to install a web driver that will help us to automatically run the web browser. You can install Firefox web driver, Internet Explorer web driver, or Chrome web driver. In this article, we will be using Chrome Web Driver.

The automation script interacts with the webpage by finding the element(s) we specified. There are various ways to find the elements in a webpage. The simplest way is to select the HTML tag of the desired element and copy its XPath. To do this, simply Right-Click on the webpage, click on “Inspect”, and copy the desired element’s XPath. You can also use the name or CSS of the element if you want to.

HTML of Google Images’ Result

Below is the implementation:

Python3




from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
 
# What you enter here will be searched for in
# Google Images
query = "dogs"
 
# Creating a webdriver instance
driver = webdriver.Chrome('Enter-Location-Of-Your-Webdriver')
 
# Maximize the screen
driver.maximize_window()
 
# Open Google Images in the browser
 
# Finding the search box
box = driver.find_element_by_xpath('//*[@id="sbtc"]/div/div[2]/input')
 
# Type the search query in the search box
box.send_keys(query)
 
# Pressing enter
box.send_keys(Keys.ENTER)
 
# Function for scrolling to the bottom of Google
# Images results
def scroll_to_bottom():
 
    last_height = driver.execute_script('\
    return document.body.scrollHeight')
 
    while True:
        driver.execute_script('\
        window.scrollTo(0,document.body.scrollHeight)')
 
        # waiting for the results to load
        # Increase the sleep time if your internet is slow
        time.sleep(3)
 
        new_height = driver.execute_script('\
        return document.body.scrollHeight')
 
        # click on "Show more results" (if exists)
        try:
            driver.find_element_by_css_selector(".YstHxe input").click()
 
            # waiting for the results to load
            # Increase the sleep time if your internet is slow
            time.sleep(3)
 
        except:
            pass
 
        # checking if we have reached the bottom of the page
        if new_height == last_height:
            break
 
        last_height = new_height
 
 
# Calling the function
 
# NOTE: If you only want to capture a few images,
# there is no need to use the scroll_to_bottom() function.
scroll_to_bottom()
 
 
# Loop to capture and save each image
for i in range(1, 50):
   
    # range(1, 50) will capture images 1 to 49 of the search results
    # You can change the range as per your need.
    try:
 
      # XPath of each image
        img = driver.find_element_by_xpath(
            '//*[@id="islrg"]/div[1]/div[' +
          str(i) + ']/a[1]/div[1]/img')
 
        # Enter the location of folder in which
        # the images will be saved
        img.screenshot('Download-Location' + 
                       query + ' (' + str(i) + ').png')
        # Each new screenshot will automatically
        # have its name updated
 
        # Just to avoid unwanted errors
        time.sleep(0.2)
 
    except:
         
        # if we can't find the XPath of an image,
        # we skip to the next image
        continue
 
# Finally, we close the driver
driver.close()


Result:

Captured Images

Well, this is the simplest way to create an automation script. This small program can be your fun little project. This could be the starting point of your journey with Selenium. You can use Selenium to do different things like scrape news from Google News. So keep your mind open about new ideas and you might end up creating a great project with Selenium and Python.

Dominic Rubhabha-Wardslaus
Dominic Rubhabha-Wardslaushttp://wardslaus.com
infosec,malicious & dos attacks generator, boot rom exploit philanthropist , wild hacker , game developer,
RELATED ARTICLES

Most Popular

Recent Comments