Python Selenium 从 url 中抓取丢失的图像

标签 python selenium selenium-webdriver web-scraping

您好,我的任务是从报价链接 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/

相关文章:

python - 如何在 python 中抑制控制台/cmd 错误消息

python - 拥有一个与多个不同模型相关的模型

python - 奇怪的饼图被截断

java - TestNG [错误] 未找到测试套件。没有什么可运行的

java - 在 cucumber / Selenium 中,当我想将多个参数作为字符串传递时,我遇到了问题

python - 为什么我的函数 "hangs"

javascript - 组织用于不同目的(外观、jQuery 和 Selenium)的 HTML 类名和 ID

Python Selenium : Scrolling not working

testing - 具有多个同时用户的端到端/功能测试网络应用程序 - 最好的方法是什么?

java - 如何使用 Selenium WebDriver 和 Java 单击未定义 ID 的输入类型提交