爬虫图片是 base64 编码

问题

爬虫抓取网页的时候,遇到有的图片是 base64 编码的格式,要怎样下载到本地呢?

示例:base64 编码的 img 标签

<!-- 内容太长省略一部分 -->
<img src="data:image/png;base64,/9j/4S/+RXhpZgAATU0AKgAAAAgAAAAAA...km7SSkpf/9k=">

解决方案

以上文为例,当我们解析到 src 属性后,可以做如下处理:

>>> import base64
>>> 
>>> # src 属性
>>> src
'data:image/png;base64,/9j/4S/+RXhpZgAATU0AKgAAAAgAAAAAA...km7SSkpf/9k='
>>>
>>> # 提取内容部分
>>> info, b64_data = src.split('base64,', 1)
>>> 
>>> # 提取文件格式
>>> fmt = info.split('image/')[-1].replace(';', '')
>>> 
>>> # 解码内容
>>> binary_data = base64.urlsafe_b64decode(b64_data)
>>>
>>> # 保存到文件
>>> with open('this_image_was_from_base64.' + fmt, 'wb') as f:
...		f.write(binary_data)
posted @ 2022-12-09 17:07  hyd666kkk  阅读(183)  评论(0)    收藏  举报