python从url中保存图片

新手上路,请多包涵

当我使用 python 通过 urllib2 请求或 urllib.urlretrieve 从 url 保存图像时遇到问题。那就是图片的url是有效的。我可以使用资源管理器手动下载它。但是,当我使用python下载图片时,文件无法打开。我使用 Mac OS 预览来查看图像。谢谢!

更新:

代码如下

def downloadImage(self):
    request = urllib2.Request(self.url)
    pic = urllib2.urlopen(request)
    print "downloading: " + self.url
    print self.fileName
    filePath = localSaveRoot + self.catalog  + self.fileName + Picture.postfix
    # urllib.urlretrieve(self.url, filePath)
    with open(filePath, 'wb') as localFile:
        localFile.write(pic.read())

我要下载的图片网址是 http://site.meishij.net/r/58/25/3568808/a3568808_142682562777944.jpg

这个 URL 是有效的,我可以通过浏览器保存它,但是 python 代码会下载一个无法打开的文件。预览版显示“它可能已损坏或使用了预览版无法识别的文件格式。”我将通过 Python 下载的图像与通过浏览器手动下载的图像进行比较。前者的大小要小几个字节。所以好像是文件未完成,但是不知道为什么python不能完整下载。

原文由 Shaoxiang Su 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 606
2 个回答

适用于 Windows 的示例代码:

 import requests

with open('pic1.jpg', 'wb') as handle:
    response = requests.get(pic_url, stream=True)

    if not response.ok:
        print(response)

    for block in response.iter_content(1024):
        if not block:
            break

        handle.write(block)

原文由 DeepSpace 发布,翻译遵循 CC BY-SA 4.0 许可协议

import requests

img_data = requests.get(image_url).content
with open('image_name.jpg', 'wb') as handler:
    handler.write(img_data)

原文由 Vlad Bezden 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题