2016-12-24 42 views
1

你好我所有的任务是从报价链接like this one报废源URL。Python硒刮失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

这个作品太谢谢你了! Mery圣诞节 – Psyke