2016-05-17 37 views
2

我想驗證一個網址是視頻原始文件鏈接或沒有,例如視頻原始文件的鏈接:蟒蛇 - 驗證URL是不urllib.request.urlopen

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

可以爲一個HTTP下載頭的工作檢查? – techydesigner

回答

2

如果您只想檢查標頭的Content-Type,則可以發送HEAD請求而不是GET

一旦您從HEAD請求獲得響應,您可以在Content-Type標題中檢查video標題,如上所述。

例子:

>>> req = urllib.request.Request(url, method='HEAD', headers={'User-Agent': 'Mozilla/5.0'}) 
>>> r = urllib.request.urlopen(req) 
>>> r.getheader('Content-Type') 
'video/mp4' 
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