您好,我的任务是从报价链接 like this one 中删除源网址.
但是当我尝试获取这样的元素时(请注意,我对 url 发出了 2 个请求来获取 cookie,因为第一次将我重定向到主页):
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 在浏览器的源代码中搜索它们时,它们丢失了。为什么会发生这种情况?谁能告诉我如何获取这些图像。
最佳答案
你只需要告诉selenium要有耐心并且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
关于Python Selenium 从 url 中抓取丢失的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41314898/