【发布时间】:2020-04-28 13:27:09
【问题描述】:
我正在使用 Python 中的 Selenium 并使用 Firefox Web 驱动程序。
我正在尝试获取图像的 SRC。当我第一次请求 SRC 时,我得到的是实际的图像数据,而不是 SRC
data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQ ...
如果我第二次运行完全相同的代码,我将获得 SRC
example.jpg
这是我的代码
fireFoxOptions = webdriver.FirefoxOptions()
fireFoxOptions.set_headless()
browser = webdriver.Firefox(firefox_options=fireFoxOptions)
element = browser.find_element(By.ID , "idOfImageHere" )
imageUrl = element.get_attribute("src")
print("image src: " + imageUrl)
不知道为什么在第一次运行代码时返回图像数据,然后在第二次运行时返回 src。似乎一旦图像被缓存,它就可以获得 src 或类似的东西。
关于如何防止图像数据被返回,只是 src 链接的任何建议?
谢谢
【问题讨论】:
-
src 必须在改变.. 可能有 javascript 重写了 src 属性。 (可能会先加载低分辨率版本或占位符)
-
这是可能的。我是从亚马逊抓取的,所以我认为他们运行了一些花哨的代码。话虽如此,我并不在乎是否获得低分辨率图像的 SRC,我只是不想要图像数据
-
您可以使用 WebDriverWait 来等待 SRC 以“.jpg”(或 .gif 等)结束
标签: python selenium xpath css-selectors webdriverwait