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

这篇具有很好参考价值的文章主要介绍了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编码。

data:image/png;base6下载到本地,python,selenium文章来源地址https://www.toymoban.com/news/detail-854641.html

到了这里,关于Python Selenium如何下载网页中的图片到本地?(Base64编码的图片下载)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android中的图片如何转换成Base64格式

    Android手机客户端的图片数据上传到服务器中保存,首先需要将客户端的图片转换成Base64格式,然后才能通过网络上传到服务器中。 让客户端将图片上传到服务器,将图片的网络URL告诉服务器 将图片转成Base64编码,传递给服务器,服务器将Base64字符串解码之后生成一张图片。

    2023年04月27日
    浏览(26)
  • 可以这样获取网页中的canvas内容,并且以图片的形式保存在本地

    1.获取canvas元素。我们可以使用JavaScript的document.getElementById()或document.querySelector()方法来获取canvas元素。 2.获取canvas的绘图上下文。我们可以使用canvas.getContext()方法获取canvas的绘图上下文。 3.使用toDataURL()方法将canvas内容转换为图片的base64编码。该方法接受一个参数,用于指定

    2024年02月12日
    浏览(28)
  • python基于Selenium方法爬取网页图片

    selenium是一个用于web应用程序的自动化测试工具,通过Selenium可以写出自动化程序,拟人在浏览器对网页进行操作。selenium可以编写出自动化程序,简化手动保存的部分。 requests库可以向第三方发送http请求,是一个用于网络请求的模块,通常以GET方式请求特定资源,请求中不应

    2024年02月03日
    浏览(44)
  • 如何在网页下载腾讯视频为本地MP4格式

    腾讯视频

    2024年02月12日
    浏览(44)
  • python利用selenium获取网页head中的title

    工作中有批量获取网页head中title的应用场景,实践中遇到了一些问题,以此记录一下。 通过检查发现网页的head中的title确实有文本,但是使用selenium的driver.title提取到了空字符串’’ 接着使用driver.find_element(By.XPATH, ‘/html/head/title’).is_displayed(),得到False,说明title被隐藏了

    2024年02月13日
    浏览(30)
  • java爬虫遇到网页验证码怎么办?(使用selenium模拟浏览器并用python脚本解析验证码图片)

            笔者这几天在爬取数据的时候遇到了一个很闹心的问题,就是在我爬取数据的时候遇到了验证码,而这个验证码又是动态生成的,尝试了很多方法都没能绕开这个验证码问题。         我的解决方案是:使用selenium模拟浏览器行为,获取到动态生成的验证码后用

    2024年02月09日
    浏览(51)
  • 微信小程序 本地图片和base64图片相互转换

    wx.chooseImage === 从本地相册选择图片或使用相机拍照 wx.getFileSystemManager() === 获取全局唯一的文件管理器 wx.getFileSystemManager().readFile === 读取本地文件内容 wx.base64ToArrayBuffer() === 将 Base64 字符串转成 ArrayBuffer 对象 wx.downloadFile === 下载文件资源到本地 从手机上选择图片转base64 网络

    2024年02月03日
    浏览(31)
  • Python:使用爬虫抓取网页中的视频并下载(完整源码)

    Python:使用爬虫抓取网页中的视频并下载(完整源码) 在今天的程序开发世界中,网站是不可或缺的一部分。人们使用网站来获取有用的信息、购买商品和娱乐自己。这些网站的内容通常包含了各种类型的文件,其中最常见的就是视频。对于有经验的程序开发者来说,使用

    2024年02月16日
    浏览(41)
  • 华纳云:Python中如何使用Selenium爬取网页数据

    这篇文章主要介绍“Python中如何使用Selenium爬取网页数据”,在日常操作中,相信很多人在Python中如何使用Selenium爬取网页数据问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python中如何使用Selenium爬取网页数据”的疑惑有所帮助!接下

    2024年02月07日
    浏览(43)
  • 前端获取本地图片并且转化为base64格式

    今天看见网上各位大佬五花八门的前端图片获取并转化为base64格式的操作,果然高手在民间,很神奇,没想到有这么多方法,那我也来写一个我自己的方法 我是习惯使用filereader这个内置类,感觉比较简单,不用管内部原理,反正可以获取图片,实现在互联网上的传输就可以

    2024年02月09日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包