我有一个类似这的链接,直接指向一个mp3文件。因此,当我把它放在浏览器中时,基本上会问我是否想下载该文件,但是,当我用下面的代码对python做同样的事情时:
> data = urllib2.urlopen("http://www23.zippyshare.com/d/44123087/497548/Lil%20Wayne%20ft.%20Eminem%20-%20Drop%20The%20World.mp3".read())我将重定向到另一个像这样的链接。因此,我得到的是html代码,而不是MP3数据
'http://www23.zippyshare.com/v/44123087/file.html‘
有什么想法吗?谢谢
发布于 2011-06-23 22:56:08
urllib2透明地处理重定向。您可能希望查看服务器在呈现这种重定向时实际上在做什么,这也允许您下载。您可能想要子类重定向处理程序,并查看标头的哪个属性为您提供url,并使用url检索下载该属性。
设置cookie,显式尝试也可能是一个很好的尝试。
import cookielib, urllib2
cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
opener.open('yourmp3filelink')发布于 2011-06-23 22:49:47
您的链接重定向到HTML网页,很可能是因为您的下载请求超时。这通常是这些下载网站的工作方式:你永远不会得到到下载的静态链接,只有一个临时分配的链接。
我的猜测是,没有办法获得静态链接使用该网站。你得知道那个文件是从哪里来的。
因此,没有,您的python代码没有什么问题;只是源代码。
https://stackoverflow.com/questions/6461471
复制相似问题