pythonpathurlretrieve

I want to designate folder to store google images


urllib.request.urlretrieve(imgUrl, image_name + "_" + str(count+1) + ".jpg")

google images are always saved the same folder as where source code is

every time I want to change folders to save them

import os import tkinter.ttk as ttk import tkinter.messagebox as msgbox from tkinter import * from tkinter import filedialog from PIL import Image

root = Tk()> root.title("Nado GUI")>

def keyword(): value = keyword_entry.get()
return value

def number(): image_number = number_entry.get()
return image_number

def google_image():

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
import urllib.request

driver = webdriver.Chrome()
driver.get("https://www.google.co.kr/imghp?hl=ko&tab=wi&authuser=0&ogbl")
elem = driver.find_element_by_name("q")

elem.send_keys(keyword())
elem.send_keys(Keys.RETURN)

images = driver.find_elements_by_css_selector(".rg_i.Q4LuWd")
count = 0
for image in images:
    try:
        image.click()
        time.sleep(1)
        imgUrl = driver.find_element_by_xpath('/html/body/div[2]/c-wiz/div[3]/div[2]/div[3]/div/div/div[3]/div[2]/c-wiz/div[1]/div[1]/div/div[2]/a/img').get_attribute("src")
        opener=urllib.request.build_opener()
        opener.addheaders=[('User-Agent','Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1941.0 Safari/537.36')]
        urllib.request.install_opener(opener)
        
        image_name = keyword_entry.get() 
                
        urllib.request.urlretrieve(imgUrl, image_name + "_" + str(count+1) + ".jpg")
        count = count + 1
        limit = number_entry.get()
        if count >= int(limit):
            break
    except:
        pass

driver.close()

Solution

  • You can try adding the path to the image name:

     urllib.request.urlretrieve(imgUrl, "/folder/" + image_name + "_" + str(count+1) + ".jpg")
    

    You may have to adjust your string for your OS and Path. but this works for me:

    
    url = f'{URL_TO_IMAGE}/{IMAGE_NAME}.jpg'
    
    urllib.request.urlretrieve(url, "./folder/" + "image_name" + ".jpg")
    
    

    enter image description here