Python - 从URL保存图像

4
有没有办法使用urllib或Beautiful Soup从URL中保存图片?
-谢谢
4个回答

5

3

如果我猜测你需要读取一个二进制文件,那么就不需要用到Beautiful Soup。只需读取流并将其存储为文件即可。

import urllib                                       
url = "http://example.com/file.pdf"
uopen = urllib.urlopen(url)
stream = uopen.read()
file = open('filename','w')
file.write(stream)
file.close()

顺便提一下,为了解决多千兆图像的问题。
import urllib
urllib.urlretrieve('url', 'filename')

第二个代码片段会更加可靠...感谢Ignacio Vazquez-Abrams解决了大文件的问题。


0

这只是我为自己写的。

def get_file(url):
    file_temp = NamedTemporaryFile()
    file_temp.write(urllib2.urlopen(url).read())
    file_temp.flush()
    return File(file_temp)

-1

在读取数据的同时,将其写入文件中。

from urllib.request import urlopen

local_file_name = 'localfile.txt'
remote_url = 'http://localhost/example'

remote_file = urlopen(remote_url)
local_file = open(file_name, "w")
local_file.write(remote_file.read())
local_file.close()

这是一个不太恰当的例子,虽然你不会经常遇到许多多GB级别的图像。 - Ignacio Vazquez-Abrams
虽然这个链接可能回答了问题,但最好在此处包含答案的基本部分并提供参考链接。仅有链接的答案如果链接页面更改可能会变得无效。 - SuperBiasedMan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接