Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python从google图片下载图片_Python_Json_Image_Google Image Search - Fatal编程技术网

使用python从google图片下载图片

使用python从google图片下载图片,python,json,image,google-image-search,Python,Json,Image,Google Image Search,我有一个preety大json文件,其中包含许多汽车品牌和型号(超过1000辆汽车),json文件如下所示: { "0":"honda_civic" "1":"nissan_leaf" ... "id":"brand_model" } 我想知道是否可以从谷歌上保存照片并将其放入相应的文件夹中(第一个元素的路径是honda/civic) 我的问题是,有没有任何功能可以从谷歌获得

我有一个preety大json文件,其中包含许多汽车品牌和型号(超过1000辆汽车),json文件如下所示:

{
"0":"honda_civic"
"1":"nissan_leaf"
...
"id":"brand_model"
}
我想知道是否可以从谷歌上保存照片并将其放入相应的文件夹中(第一个元素的路径是honda/civic)

我的问题是,有没有任何功能可以从谷歌获得第一张结果照片并将其保存在本地?(如果它还可以对这些照片进行排序,那就太好了。)
标记为允许重用)。

此代码为我实现了以下目的:

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:

(不是我否决了这个问题,大家好)你应该尝试在google+上做一些研究,尝试创建一个python程序结构,测试它,如果不起作用,就在这里发布。这可能会对你有所帮助:问题是我不喜欢python编程,我只知道我可以用python做很多事情,这就是为什么我在python中寻求帮助。但是我如何才能只过滤标记有权限重用的图像呢?