2016-12-24 2 views
1

Привет всем, моя задача состоит в том, чтобы отказаться от исходного URL-адреса из ссылки предложения like this one.Python Selenium Scraping отсутствует изображение с url

Но когда я пытаюсь получить элементы, как это (Обратите внимание, что я делаю 2 запросы на URL, чтобы получить печенье, потому что первый раз перенаправляет меня на главную страницу):

driver = webdriver.Firefox(executable_path="C:\\selenium-drivers\\geckodriver.exe") 
driver.get("http://www.kmart.com/joe-boxer-men-s-pajama-shirt-pants-plaid/p-046VA92629712P") 
driver.get("http://www.kmart.com/joe-boxer-men-s-pajama-shirt-pants-plaid/p-046VA92629712P") 
img_element = driver.find_elements_by_class_name("main-image") 

Нет элементы найдены, и когда я пытаюсь найти их в исходном коде в браузере с помощью Ctrl + U, они отсутствуют. Почему это происходит? Кто-нибудь, кто может сказать мне, как получить эти изображения.

ответ

2

Вам просто нужно сказать селеном быть терпеливым и wait for element's visibility:

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

# driver definition here 

driver.get("http://www.kmart.com/joe-boxer-men-s-pajama-shirt-pants-plaid/p-046VA92629712P") 

wait = WebDriverWait(driver, 10) 

# get the main image element 
img_element = wait.until(EC.visibility_of_element_located((By.CLASS_NAME, 'main-image'))) 
print(img_element.get_attribute("alt")) 

driver.close() 

Для демонстрационных целей, он печатает атрибут образа alt, который:

Joe Boxer Men's Pajama Shirt & Pants - Plaid 
+0

О, мой бог, вы м спаситель! Спасибо, я не знал, что есть функция для ожидания элемента. Счастливого Рождества! – Psyke

0

Или вы можете просто найдите по xpath, а затем получите изображение url

>>> driver.get('http://www.kmart.com/joe-boxer-men-s-pajama-shirt-pants-plaid/p-046VA92629712P') 
>>> s = driver.find_element_by_xpath('//*[@id="overview"]/div[1]/img') 
>>> s.get_attribute('src') 
'http://c.shld.net/rpx/i/s/i/spin/-122/prod_2253990712?hei=624&wid=624&op_sharpen=1' 
+0

Это тоже очень работает! Мери Рождество – Psyke

Смежные вопросы