我想验证网址是否是视频原始文件链接,例如:
http://hidden_path/video_name.mp4
以下是我目前的代码:
def is_video(url):
r = None
try:
r = urllib.request.urlopen(urllib.request.Request(url, headers={'User-Agent': 'Mozilla/5.0'}))
except:
return False
content_type = r.getheader("Content-Type")
if re.match("video*", content_type):
return True
return False
如果视频网址是大视频,则此代码会出现问题,并且可能会导致服务器出现超时错误。
有没有更好的方法?
答案 0 :(得分:2)
如果您只想查看标题的Content-Type
,则可以发送HEAD
个请求,而不是GET
。
获得HEAD
请求的回复后,您可以检查上面video
标题中的Content-Type
。
示例:
>>> req = urllib.request.Request(url, method='HEAD', headers={'User-Agent': 'Mozilla/5.0'})
>>> r = urllib.request.urlopen(req)
>>> r.getheader('Content-Type')
'video/mp4'
答案 1 :(得分:0)
希望这样做
import mimetypes
url = 'http://media.theaterchurch.com/podcast/video/hd/720p/2016/05-08-16-720p.mp4'
print mimetypes.MimeTypes().guess_type(url)[0]
输出这个......
video/mp4