selenium python почему я не получаю URL-адрес изображения?

#python #python-3.x #selenium #selenium-webdriver #web-scraping

#python #python-3.x #селен #selenium-webdriver #очистка веб-страниц

Вопрос:

Я пытаюсь получить все URL-адреса изображений с этой страницы. У каждого продукта есть несколько изображений. вот мой код, в котором я пытаюсь получить URL-адрес изображения:

 img = driver.find_elements_by_css_selector('.gem-gallery-thumbs-carousel img')
for i in img:
    y = i.get_attribute('href')
    print(y)

result:     
None
None
None
None
None
None
 

Комментарии:

1. Изображения обычно имеют src атрибут, а не href . И на этой странице, в частности, похоже, что у них есть data-tgpli-src атрибут.

2. Джон Гордон Я знаю и пытался, но не сработало

3. Обновите вопрос, чтобы включить образец элемента, который вы ожидаете найти.

4. Джон Гордон Спасибо. теперь он работал после изменения href src , но не понимал, почему он не работал раньше. Кстати, спасибо.

Ответ №1:

  1. URL-адреса изображений в этих элементах содержатся в src атрибуте, а не в href том, как указано в комментариях.
  2. Вероятно, вам следует добавить wait / delay, чтобы страница загружалась перед чтением содержимого элементов.
    Итак, что-то вроде этого после соответствующего ожидания / задержки должно сработать:
 imgs = driver.find_elements_by_css_selector('.gem-gallery-thumbs-carousel img')
for img in imgs:
    url = img.get_attribute('src')
    print(url)
 

Ответ №2:

Для вывода src для тех, которые вам нужны .get_attribute() для src

 wait=WebDriverWait(driver, 60)
driver.get('https://ca.morilee.com/product/quinceanera-dresses/vizcaya/iridescent-crystal-beaded-quinceanera-dress/')
imgs=wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR,".gem-gallery-thumbs-carousel img")))
for img in imgs:
    print(img.get_attribute("src")
 

Импорт:

 from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC
 

Результаты:

 https://ca.morilee.com/wp-content/uploads/sites/10/2021/11/89331-0259-scaled-1-280x400.jpg
https://ca.morilee.com/wp-content/uploads/sites/10/2021/11/89331-0292-scaled-1-280x400.jpg
https://ca.morilee.com/wp-content/uploads/sites/10/2021/11/89331-0061-scaled-1-280x400.jpg
https://ca.morilee.com/wp-content/uploads/sites/10/2021/11/89331-0083-scaled-1-280x400.jpg
https://ca.morilee.com/wp-content/uploads/sites/10/2021/11/89331-0101-scaled-1-280x400.jpg
https://ca.morilee.com/wp-content/uploads/sites/10/2021/11/89331-0196-scaled-1-280x400.jpg