Python:给定一个链接,如果链接是图像,如何在本地保存,如果不是图像则不保存?

时间:2016-06-12 22:22:12

标签: python web-scraping

我目前正在使用

import urllib

urllib.urlretrieve("http://www.digimouth.com/news/media/2011/09/google-logo.jpg", "local-filename.jpg")

有没有办法查看链接是否包含图片,如果没有,则无需下载,如果是,则下载。

谢谢!

1 个答案:

答案 0 :(得分:1)

扩展名并不意味着文件是实际图片,如果您想检查该文件确实是您可以使用的图像imagemagik identify

from subprocess import check_output, CalledProcessError
from tempfile import NamedTemporaryFile
import requests
from shutil import move

r = requests.get("http://www.digimouth.com/news/media/2011/09/google-logo.jpg").content
tmp = NamedTemporaryFile("wb", delete=False, dir=".")
tmp.write(r)


try:    
    out = check_output(["identify", "-format", "%m", tmp.name])
    print(out)
    move(tmp.name, "whatever.{}".format(out.lower()))
except CalledProcessError:
    tmp.delete = True

要查看所有支持的格式,请运行identify -list format