Я не могу загрузить изображения Google, используя python Селен - PullRequest
0 голосов
/ 11 февраля 2020

Привет! Я сканирую изображение в Google, используя селен. Но это не сработало. Как я могу заставить этот код работать? Мой код, как показано ниже.

Ранее я использовал google_images_download и внезапно застрял. Поэтому я ищу новый путь и надеюсь, что кто-то может помочь. Спасибо

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import json
import os
import urllib.request as urllib2
import argparse

searchterm = 'spider' # will also be the name of the folder
url = "https://www.google.co.in/search?q="+searchterm+"&source=lnms&tbm=isch"
# NEED TO DOWNLOAD CHROMEDRIVER, insert path to chromedriver inside parentheses in following line
browser = webdriver.Chrome('C:\Python27\Scripts\chromedriver')
browser.get(url)
header={'User-Agent':"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.134 Safari/537.36"}
counter = 0
succounter = 0

if not os.path.exists(searchterm):
    os.mkdir(searchterm)

for _ in range(500):
    browser.execute_script("window.scrollBy(0,10000)")

for x in browser.find_elements_by_xpath('//div[contains(@class,"rg_meta")]'):
    counter = counter + 1
    print("Total Count:", counter)
    print("Succsessful Count:", succounter)
    print("URL:",json.loads(x.get_attribute('innerHTML'))["ou"])

    img = json.loads(x.get_attribute('innerHTML'))["ou"]
    imgtype = json.loads(x.get_attribute('innerHTML'))["ity"]
    try:
        req = urllib2.Request(img, headers={'User-Agent': header})
        raw_img = urllib2.urlopen(req).read()
        File = open(os.path.join(searchterm , searchterm + "_" + str(counter) + "." + imgtype), "wb")
        File.write(raw_img)
        File.close()
        succounter = succounter + 1
    except:
            print("can't get img")

print (succounter, "pictures succesfully downloaded")
browser.close()

Ответы [ 2 ]

0 голосов
/ 10 марта 2020

Я также столкнулся с проблемой сканирования изображений из Google, как и ваш метод, так как при использовании rg_meta

исходный код веб-страницы результатов поиска изображений Google был изменен, и они больше не дают rg_meta с начала 2020. Тег

rg_meta также изменен на случайную строку, например

rg_X XXXXXX XXXXXX

Я думаю, что Google решил запретить сканирование ботов и привел к использованию API пользовательского поиска Google.

0 голосов
/ 11 февраля 2020

Я решил сканировать изображения с других сайтов, кроме Google Images.

...