python google image search code example
Example 1: search google images python
from selenium import webdriver
from bs4 import BeautifulSoup
import requests
import urllib.request
import time
import sys
import os
#taking user input
print("What do you want to download?")
download = input()
site = 'https://www.google.com/search?tbm=isch&q='+download
#providing driver path
driver = webdriver.Firefox(executable_path = 'C:\Drivers\geckodriver.exe')
#passing site url
driver.get(site)
#if you just want to download 10-15 images then skip the while loop and just write
#driver.execute_script("window.scrollBy(0,document.body.scrollHeight)")
#below while loop scrolls the webpage 7 times(if available)
i = 0
while i<7:
#for scrolling page
driver.execute_script("window.scrollBy(0,document.body.scrollHeight)")
try:
#for clicking show more results button
driver.find_element_by_xpath("/html/body/div[2]/c-wiz/div[3]/div[1]/div/div/div/div/div[5]/input").click()
except Exception as e:
pass
time.sleep(5)
i+=1
#parsing
soup = BeautifulSoup(driver.page_source, 'html.parser')
#closing web browser
driver.close()
#scraping image urls with the help of image tag and class used for images
img_tags = soup.find_all("img", class_="rg_i")
count = 0
for i in img_tags:
#print(i['src'])
try:
#passing image urls one by one and downloading
urllib.request.urlretrieve(i['src'], str(count)+".jpg")
count+=1
print("Number of images downloaded = "+str(count),end='\r')
except Exception as e:
pass
Example 2: python google image search
from google_images_search import GoogleImagesSearch
# you can provide API key and CX using arguments,
# or you can set environment variables: GCS_DEVELOPER_KEY, GCS_CX
gis = GoogleImagesSearch('your_dev_api_key', 'your_project_cx')
# define search params:
_search_params = {
'q': '...',
'num': 10,
'safe': 'high|medium|off',
'fileType': 'jpg|gif|png',
'imgType': 'clipart|face|lineart|news|photo',
'imgSize': 'huge|icon|large|medium|small|xlarge|xxlarge',
'imgDominantColor': 'black|blue|brown|gray|green|pink|purple|teal|white|yellow',
'rights': 'cc_publicdomain|cc_attribute|cc_sharealike|cc_noncommercial|cc_nonderived'
}
# this will only search for images:
gis.search(search_params=_search_params)
# this will search and download:
gis.search(search_params=_search_params, path_to_dir='/path/')
# this will search, download and resize:
gis.search(search_params=_search_params, path_to_dir='/path/', width=500, height=500)
# search first, then download and resize afterwards:
gis.search(search_params=_search_params)
for image in gis.results():
image.download('/path/')
image.resize(500, 500)