使用Python从直接URL下载视频

5
我想使用Python下载视频。我尝试使用youtube-dl,但我想要下载视频的网站不受支持。如何在Python中下载视频。首先,我尝试从keepvid.com获取我想要下载的视频的直接链接,在访问此链接后http://www.kmcgraphics.com/bits-of-code/how-to-get-the-direct-url-path-to-flv-video-files-on-youtube-for-free/。我得到了以下链接http://www.animefun.com/dl/googDev.php?url=/108994262975881368074/Po270,但当我尝试运行下面的代码时,我遇到了错误。
import urllib
test=urllib.URLopener()
test.retrieve("http://www.animefun.com/dl/googDev.php?url=/108994262975881368074/Po270.flv","testout.flv")

错误:

Traceback (most recent call last):
File "downl.py", line 14, in <module>
test.retrieve("http://www.animefun.com/dl/googDev.php?url=/108994262975881368074/Po270.flv","testout.flv")
File "/usr/lib/python2.7/urllib.py", line 240, in retrieve
fp = self.open(url, data)
File "/usr/lib/python2.7/urllib.py", line 208, in open
return getattr(self, name)(url)
File "/usr/lib/python2.7/urllib.py", line 359, in open_http
return self.http_error(url, fp, errcode, errmsg, headers)
File "/usr/lib/python2.7/urllib.py", line 376, in http_error
return self.http_error_default(url, fp, errcode, errmsg, headers)
File "/usr/lib/python2.7/urllib.py", line 381, in http_error_default
raise IOError, ('http error', errcode, errmsg, headers)
IOError: ('http error', 301, 'Moved Permanently', <httplib.HTTPMessage instance at 0x7f094d5d5290>)

我是Python的新手,请您帮忙。

1个回答

10

urllib.URLopener 默认情况下不会处理重定向。

请改用urllib.FancyURLopener

import urllib
test=urllib.FancyURLopener()
test.retrieve("http://www.animefun.com/dl/googDev.php?url=/108994262975881368074/Po270.flv","testout.flv")

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接