使用Python下载数据URI

时间:2013-12-12 20:29:42

标签: python uri

我搜索了一下,但没有得到答案。我试图使用Python从网站下载一些图像文件。当网站html具有图片的网址时,我可以使用类似

的内容
urllib.urlretrieve(pic_url, pic_name) 

但是当它是类似

的数据URI时
<img src="data:...."> 

如何从网站下载该图片?

提前谢谢!

1 个答案:

答案 0 :(得分:1)

请参阅此处http://en.wikipedia.org/wiki/Data_URI_scheme数据实际上是HTML中的所有内容。您只需要某种形式的HTML解析器来定位标记,获取src=的属性,然后以任何格式解码数据,通常是base64。

使用维基百科中的示例获取红点png:

>>> import base64
>>> png_data = "iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=="
>>> with open('/tmp/red.png', 'w') as fp:
...     fp.write(base64.b64decode())
...

现在,如果你看一下/tmp/red.png,它就是一个小红点。

考虑使用BeautifulSoup进行HTML处理。