【发布时间】:2021-12-18 20:18:15
【问题描述】:
我正在使用 selenium 从谷歌图片中自动下载几张图片,因为我之前在互联网上找到的所有其他解决方案都太慢或不起作用,但现在我需要提取图片的来源,但是当我尝试使用 element.get_attribute('src') 时,它返回图像的 base64,甚至当我在 chrome devtools 上搜索 xpath 时,标签的 src 属性实际上是一个 url
代码试验:
for i in range(n):
element = self.wait.until(
EC.presence_of_element_located((By.XPATH, '//*[@id="Sva75c"]/div/div/div[3]/div[2]/c-wiz/div/div[1]/div[1]/div[2]/div/a/img')))
src = element.get_attribute('src')
print(element)
self.download_file(src,keyword)
编辑:
我实际上尝试了你们中的一些人所说的,而不是下载图像,我将 base 64 转换为图像并保存它,这比使用请求和 URL 保存要快得多,但我猜这更多是一个问题谷歌脚本比我的代码,因为有时我的代码坏了导致 src 实际上返回了一个 URL,最后,我不得不做两个不同的函数,一个如果 src 返回一个 url,另一个如果返回 base64
【问题讨论】:
-
你不能只使用图片的 base64 并保存它,而不是获取 URL 并下载它吗?
-
可能 url 位于不同的元素中 - 也许您应该使用更好的 XPATH(没有所有这些
div但带有类或 ID。或者它使用 JavaScript 替换值,它需要一些时间。或者服务器为不同的浏览器/设备发送不同的代码。 -
没有最少的工作代码,很难测试这个问题。
-
请提供网页网址以便我们进一步调查。
标签: python selenium selenium-webdriver xpath css-selectors