Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何检查imgur URL是gif还是图像?_Python_Gif_Imgur - Fatal编程技术网

Python 如何检查imgur URL是gif还是图像?

Python 如何检查imgur URL是gif还是图像?,python,gif,imgur,Python,Gif,Imgur,假设我有这样一个imgur url: 从url我不知道这是图片还是gif。我知道我可以将“.jpg”添加到文件的末尾,以获得到图像的直接链接,但如果链接恰好是gif,这也会显示gif。我将如何通过编程(使用imgurapi或其他方式)检查该项是否位于url或是图像或gif 编辑: 我试过这个 print(requests.head(submission.url + ".jpg").headers['Content-Type']) 但它抱怨了以下错误: KeyError: 'content-ty

假设我有这样一个imgur url:

从url我不知道这是图片还是gif。我知道我可以将“.jpg”添加到文件的末尾,以获得到图像的直接链接,但如果链接恰好是gif,这也会显示gif。我将如何通过编程(使用imgurapi或其他方式)检查该项是否位于url或是图像或gif

编辑: 我试过这个

print(requests.head(submission.url + ".jpg").headers['Content-Type'])
但它抱怨了以下错误:

KeyError: 'content-type'
暗示内容类型不是标题中的键。我打印了标题并确认了这一点,因为它们如下所示:

{'Content-Length': '0', 'X-Served-By': 'cache-sjc3138-SJC', 'X-Cache': 'HIT', 'Accept-Ranges': 'bytes', 'X-Timer': 'S1498627080.598287,VS0,VE0', 'Server': 'cat factory 1.0', 'Retry-After': '0', 'Connection': 'close', 'X-Cache-Hits': '0', 'Location': 'https://i.imgur.com/APMnK9t.jpg', 'Cache-Control': 'no-store, no-cache, must-revalidate, post-check=0, pre-check=0', 'Date': 'Wed, 28 Jun 2017 05:17:59 GMT', 'X-Frame-Options': 'DENY'}
我想我可以检查内容长度是否不是0,看看它是否是gif?想法?

使用:


但是gif是一幅图像,
submission.url
?的价值是什么?下面是submission.url字段中的url示例-有人建议在其前面添加一个i,因此我将尝试使用“某人”作为我:-)是的,有人是@smarx哈哈,谢谢manthanks的帮助,但这给出了一个关键错误:“内容类型”错误。想法?你能分享你的代码吗?这里的代码对我来说运行良好。当然,但问题似乎是标题没有内容类型键。我打印了标题,如下所示:{'Content-Length':'0','X-Served-By':'cache-sjc3138-SJC','X-cache':'HIT','Accept Ranges':'bytes','X-Timer':'S1498627080.598287,VS0,VE0','Server':'cat factory 1.0','Retry After','0','Connection':'close','X-cache-Hits':'0','Location','cache Control:'no store必须重新验证,post check=0,pre check=0','Date:'Wed'',2017年6月28日05:17:59格林尼治标准时间,“X帧选项”:“拒绝”}如果出现
位置
标题,我会认为这是一个重定向响应。如果没有看到您的代码,很难确定。我的最佳猜测是……您缺少URL开头的
i.
。您可以添加它,也可以在
请求.head
调用中使用
allow_redirects=True
import requests

def get_content_type(url):
    return requests.head(url).headers['Content-Type']

print(get_content_type('https://i.imgur.com/pCEoGjF.jpg'))  # image/jpeg
print(get_content_type('https://i.imgur.com/kJNdeQv.jpg'))  # image/gif