dan*_*ast 4 python base64 image data-uri
HTML图像元素具有以下简化格式:
<img src='something'>
Run Code Online (Sandbox Code Playgroud)
那可能是data-uri
,例如:
data:image/png;base64,iVBORw0KGg...
Run Code Online (Sandbox Code Playgroud)
有没有一种标准的方法来解析这个python,所以我得到content_type
和base64数据分开,或者我应该为此创建自己的解析器?
JRo*_*ite 12
拆分逗号上的数据URI以获取没有标头的base64编码数据.调用base64.b64decode
将其解码为字节.最后,将字节写入文件.
from base64 import b64decode
data_uri = "data:image/png;base64,iVBORw0KGg..."
header, encoded = data_uri.split(",", 1)
data = b64decode(encoded)
with open("image.png", "wb") as f:
f.write(data)
Run Code Online (Sandbox Code Playgroud)
bl7*_*l79 11
Python 从 3.4 开始支持 data-uri。在引擎盖下使用urllib.request .DataHandler。
from urllib.request import urlopen
with urlopen(data_uri) as response:
data = response.read()
Run Code Online (Sandbox Code Playgroud)
w3lib(Scrapy使用的库)具有解析数据uris 的功能:
>>> from w3lib.url import parse_data_uri
>>> parse_data_uri('data:image/png;base64,iVBORw0KGg==')
ParseDataURIResult(media_type='image/png', media_type_parameters={}, data=b'\x89PNG\r\n\x1a')
Run Code Online (Sandbox Code Playgroud)