python - 验证url是否是没有urllib.request.urlopen的视频原始文件链接

时间:2016-05-17 05:32:18

标签: python video urllib

我想验证网址是否是视频原始文件链接,例如:

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

如果视频网址是大视频,则此代码会出现问题,并且可能会导致服务器出现超时错误。

有没有更好的方法?

2 个答案:

答案 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