2016-06-12 22 views
-1

我目前使用Python:给出一个链接,如果链接是一个图像,如何在本地保存,如果它不是图像则不保存?

import urllib 

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

有没有办法,看是否链接包含一个事先知情同意或不如果不是则无需下载,如果是这样,然后下载。

谢谢!

+0

这是什么意思*如果链接包含图片或不* –

+0

你必须分析文件扩展名。 – Serenity

回答

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

相关问题