Python Selenium如何下载网页中的图片到本地?(Base64编码的图片下载)

前言:        

        在网页上,图片有时会以Base64编码的形式嵌入在HTML中,而不是作为单独的文件提供。这种方式的优点是可以减少HTTP请求的数量,因为图片数据直接包含在HTML中,不需要额外的请求来获取图片文件。这对于小图片或图标特别有用,因为这些图片的文件大小可能比一个HTTP请求的开销还要小。

        当你在网页上看到一个Base64编码的图片时,你需要先将这个编码解码为原始的二进制数据,然后才能将这个数据保存为一个图片文件。所以我们需要使用base64.b64decode函数去解码。

大致的步骤:

  1. 使用Selenium查找图片元素,并获取其src属性。这个属性包含了图片的Base64编码。
  2. 使用split函数将src属性的值分割为两部分。第一部分是"data:image/png;base64",这是一个标识,表示接下来的数据是一个Base64编码的PNG图片。第二部分是实际的Base64编码。
  3. 使用base64.b64decode函数将Base64编码解码为原始的二进制数据。
  4. 将这个二进制数据写入一个文件,创建一个图片文件。

实现代码:

image_tag = dwk_auto.find_xpath("""your_target_xpath""")
image_data = image_tag.get_attribute("src")
image_data = image_data.split(";base64,")[1]
# 解码图片数据
image_bytes = base64.b64decode(image_data)
# 将图片数据写入文件
with open("image.png", "wb") as f:
    f.write(image_bytes)

        dwk_auto是我自定义的一个类,find_xpath是我自定义的一个函数,

        主要是获取到目标图片的tag,一般来说,这是一个img标签,获取到了tag就能获取该tag的src属性了。

        对于img元素,src属性用于指定图片的URL。这个URL可以是一个指向图片文件的HTTP或HTTPS URL,也可以是一个包含Base64编码的图片数据的"data" URL。

        例如,一个包含Base64编码的PNG图片的"data" URL可能看起来像这样:

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==

        在这个例子中,image/png是MIME类型,表示这是一个PNG图片,iVBORw0KG...是图片的Base64编码。

相关推荐

  1. uniapp微信小程序下载保存图片本地,base64

    2024-01-05 10:09:02       48 阅读
  2. 鸿蒙 如何base64图片保存相册

    2024-01-05 10:09:02       8 阅读
  3. 图片Base64编码

    2024-01-05 10:09:02       8 阅读
  4. 前端实现base64编码图片导出

    2024-01-05 10:09:02       47 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-05 10:09:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-05 10:09:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-05 10:09:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-05 10:09:02       20 阅读

热门阅读

  1. flask web学习之模板(一)

    2024-01-05 10:09:02       39 阅读
  2. Eureka工作原理

    2024-01-05 10:09:02       37 阅读
  3. Kafka高级应用:如何配置处理MQ百万级消息队列?

    2024-01-05 10:09:02       44 阅读
  4. vue3.0&&vue2.0-prop

    2024-01-05 10:09:02       41 阅读
  5. Matlab定义函数计算斐波那契数列

    2024-01-05 10:09:02       31 阅读