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

标签 python video urllib

我想验证一个url是否是视频原始文件链接,例如:

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

如果视频 url 是一个大视频,此代码将有问题,并且可能导致服务器超时错误。

有没有更好的方法?

最佳答案

如果您只想检查 Content-Type您可以发送标题的 HEAD请求而不是 GET .

一旦您获得来自 HEAD 的回复请求您可以检查 videoContent-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'

关于python - 验证 url 是否是没有 urllib.request.urlopen 的视频原始文件链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37267871/

相关文章:

python - Pandas 数据帧 : How to calculate the difference by first row and last row in group?

python - Selenium 发现隐藏元素

Python urllib.request.urlopen : AttributeError: 'bytes' object has no attribute 'data'

python - 使用 urllib.urlopen 时获取文件名

wpf - 是否可以使用 WPF 在多台计算机之间同步视频?

带有 Urllib2 问题的 Python 多线程

python - WSGIRequest 对象没有属性 get

python - 使用 AM/PM 将 python 字符串转换为日期时间 obj

audio - 是否可以使用Office Common API从外接程序插入视频?

ios - 从 iPhone 6/6+ 上的相机胶卷视频导出时没有慢动作效果