我有一个这样的链接,直接指向mp3文件。因此,当我把它放在浏览器中时,基本上会问我是否想下载该文件,但当我用以下代码对python做同样的事情时:
> data = urllib2.urlopen("http://www23.zippyshare.com/d/44123087/497548/Lil%20Wayne%20ft.%20Eminem%20-%20Drop%20The%20World.mp3".read())
我将重定向到另一个类似的链接。因此,我得到的不是MP3数据,而是的html代码
'http://www23.zippyshare.com/v/44123087/file.html'
有什么想法吗?感谢
urlib2透明地处理重定向。您可能想看看服务器在提供这样的重定向并允许您下载时实际在做什么。您可能想要对重定向处理程序进行子类化,并查看头的哪个属性为您提供了url,然后使用urlresearche下载它。
设置cookie,显式尝试可能也是一个不错的尝试。
import cookielib, urllib2
cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
opener.open('yourmp3filelink')
您的链接重定向到HTML网页,很可能是因为您的下载请求超时。这些下载网站通常就是这样工作的:你永远不会得到下载的静态链接,只有一个临时分配的链接。
我的猜测是,使用该网站无法获得静态链接。您必须知道文件的实际来源。
所以不,您的python代码没有任何问题;只是你的消息来源。