使用 python 从 google 图像下载图片
Download pictures from google images using python
我有一个非常大的 json 文件,其中包含很多汽车品牌和型号(超过 1000 辆汽车),json 文件如下所示:
{
"0":"honda_civic"
"1":"nissan_leaf"
...
"id":"brand_model"
}
我想知道是否可以保存 google 中的照片并将它们放入对应的文件夹中(第一个元素的路径是 honda/civic)。
请问有什么功能可以从google中获取第一张结果照片并保存在本地?
标记为允许重复使用)。
这段代码对我有用:
import json
myjson=json.load(open('id.json','rb'))
print("starting")
from selenium import webdriver
import time
import urllib.request
import os
from selenium.webdriver.common.keys import Keys
i=0
def searchnsave(id,key_word):
browser = webdriver.Chrome("C:/Program Files (x86)/Google/Chrome/Application/chromedriver.exe") #incase you are chrome
browser.get("https://www.google.com/search?q="+key_word+"&tbm=isch&ved=2ahUKEwi2hvndl-jqAhWSkqQKHffTA5sQ2-cCegQIABAA&oq="+key_word+"&gs_lcp=CgNpbWcQAzIECAAQEzIECAAQEzIECAAQEzIECAAQEzIECAAQE1D2FVj2FWDHG2gAcAB4AIABUogBUpIBATGYAQCgAQGqAQtnd3Mtd2l6LWltZ8ABAQ&sclient=img&ei=LAgcX7bAM5KlkgX3p4_YCQ&bih=722&biw=1519&tbs=sur%3Afc&hl=ro")
#search = browser.find_element_by_name('q')
#search.send_keys(key_words,Keys.ENTER)
#elem = browser.find_element_by_link_text('Images')
#elem.get_attribute('href')
#elem.click()
value = 0
#for i in range(20):
# browser.execute_script("scrollBy("+ str(value) +",+1000);")
# value += 1000
# time.sleep(3)
elem1 = browser.find_element_by_id('islmp')
sub = elem1.find_elements_by_tag_name("img")
count = 0
for i in sub:
src = i.get_attribute('src')
try:
if src != None:
src = str(src)
print(src)
count+=1
urllib.request.urlretrieve(src, os.path.join('downloads',key_word+'.jpg'))
else:
raise TypeError
except TypeError:
print('fail')
break
browser.close()
for k,v in myjson.items():
print(k,v)
searchnsave(k,v)
但不要忘记先使用以下命令安装 selenium:
pip3 install selenium
并从此处安装正确的 chromedriver.exe:http://chromedriver.storage.googleapis.com/index.html
我有一个非常大的 json 文件,其中包含很多汽车品牌和型号(超过 1000 辆汽车),json 文件如下所示:
{
"0":"honda_civic"
"1":"nissan_leaf"
...
"id":"brand_model"
}
我想知道是否可以保存 google 中的照片并将它们放入对应的文件夹中(第一个元素的路径是 honda/civic)。
请问有什么功能可以从google中获取第一张结果照片并保存在本地? 标记为允许重复使用)。
这段代码对我有用:
import json
myjson=json.load(open('id.json','rb'))
print("starting")
from selenium import webdriver
import time
import urllib.request
import os
from selenium.webdriver.common.keys import Keys
i=0
def searchnsave(id,key_word):
browser = webdriver.Chrome("C:/Program Files (x86)/Google/Chrome/Application/chromedriver.exe") #incase you are chrome
browser.get("https://www.google.com/search?q="+key_word+"&tbm=isch&ved=2ahUKEwi2hvndl-jqAhWSkqQKHffTA5sQ2-cCegQIABAA&oq="+key_word+"&gs_lcp=CgNpbWcQAzIECAAQEzIECAAQEzIECAAQEzIECAAQEzIECAAQE1D2FVj2FWDHG2gAcAB4AIABUogBUpIBATGYAQCgAQGqAQtnd3Mtd2l6LWltZ8ABAQ&sclient=img&ei=LAgcX7bAM5KlkgX3p4_YCQ&bih=722&biw=1519&tbs=sur%3Afc&hl=ro")
#search = browser.find_element_by_name('q')
#search.send_keys(key_words,Keys.ENTER)
#elem = browser.find_element_by_link_text('Images')
#elem.get_attribute('href')
#elem.click()
value = 0
#for i in range(20):
# browser.execute_script("scrollBy("+ str(value) +",+1000);")
# value += 1000
# time.sleep(3)
elem1 = browser.find_element_by_id('islmp')
sub = elem1.find_elements_by_tag_name("img")
count = 0
for i in sub:
src = i.get_attribute('src')
try:
if src != None:
src = str(src)
print(src)
count+=1
urllib.request.urlretrieve(src, os.path.join('downloads',key_word+'.jpg'))
else:
raise TypeError
except TypeError:
print('fail')
break
browser.close()
for k,v in myjson.items():
print(k,v)
searchnsave(k,v)
但不要忘记先使用以下命令安装 selenium:
pip3 install selenium
并从此处安装正确的 chromedriver.exe:http://chromedriver.storage.googleapis.com/index.html