(селен) Не удается найти элемент изображения в изображении Google более 20 - PullRequest
0 голосов
/ 20 марта 2020

Я пытаюсь очистить изображение Google, используя селен, chrome -драйвер.

Я скопировал Xpath элементов изображения и использовал find_element_by_xpath. Но селен находит не более первых 20 элементов изображения на странице.

Есть ли способ найти больше?

Вот код:

# -*- coding: utf-8 -*-
from selenium import webdriver
import urllib.request
import time

driver = webdriver.Chrome('./chromedriver.exe')
driver.set_window_size(800, 600)
driver.implicitly_wait(5)
driver.get('https://www.google.com/search?q=a+dog&tbm=isch&ved=2ahUKEwi-59_iiZ_oAhWCIZQKHTaWB5MQ2-cCegQIABAA&oq=a+dog&gs_l=img.3..0l5j0i7i30l5.29034.29325..29590...0.0..0.130.258.0j2......0....1..gws-wiz-img.10szHAao5lM&ei=5ntvXr7cNoLD0AS2rJ6YCQ')

for i in range(1, 10):
     driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
     time.sleep(1)

for i in range(1,100):
    img = driver.find_element_by_xpath('//*[@id="islrg"]/div[1]/div[' +str(i) +']/a[1]/div[1]/img')
    print(img)
    src = img.get_attribute('src')
    print(src)
    urllib.request.urlretrieve(src, "./dog/" + str(i) +".png")



driver.close()

1 Ответ

1 голос
/ 20 марта 2020

если у вас есть такой код в вашем скрипте "options.add_argument (" - headless ")", прокомментируйте его и запустите снова, появится браузер chrome, и вы увидите, что изображения сгруппированы только по страницам.

...