使用Python urllib2下载链接

使用Python urllib2下载链接,python,html,download,mp3,urllib,Python,Html,Download,Mp3,Urllib,我想从网页上下载mp3,但我得到的只是html,而不是mp3本身。我使用的代码来自以下链接: 为什么我买不到mp3?下面是一个测试示例,显示它以html的形式下载:当我尝试在web浏览器中打开该URL时,或者使用wget,我会得到一个302重定向到http://www5.zippyshare.com/v/77609120/file.html,这当然是一个HTML页面 当你浏览图像、歌曲和视频时,许多网站会将你重定向到这些“容器页面”(或者直接返回它们)。这可能是为了改善你的用户体验,让其他网站更

我想从网页上下载mp3,但我得到的只是html,而不是mp3本身。我使用的代码来自以下链接:


为什么我买不到mp3?下面是一个测试示例,显示它以html的形式下载:

当我尝试在web浏览器中打开该URL时,或者使用
wget
,我会得到一个302重定向到
http://www5.zippyshare.com/v/77609120/file.html
,这当然是一个HTML页面

当你浏览图像、歌曲和视频时,许多网站会将你重定向到这些“容器页面”(或者直接返回它们)。这可能是为了改善你的用户体验,让其他网站更难“深度链接”他们的内容,或者让你更难“窃取”他们的内容

如果是前两个链接中的一个,答案通常很简单:添加一个
Referer
标题,指向您从中获得链接的下载页面(或者,有时指向同一站点上的任何内容,甚至是您正在下载的同一URL)

如果是第三种情况,他们通常会采取更多的保护措施。仅举一个例子,他们可能要求您拥有一个cookie,您可以坐在下载页面上等待30秒计时器,该cookie仅在30分钟内有效

如果你足够了解HTTP和JavaScript,并且不介意违反他们的服务条款,你通常可以对他们的每一项保护进行反向工程,并为自己编写一个下载脚本,直到他们下个月进行更改为止,但这通常是不值得做的


无论如何,鉴于这个网站名为zippyshare,我猜这是最后一个。这类网站通过在每次下载文件时向您显示广告、提示您每月支付费用以获得直接/加速/任何下载等方式赚钱,因此他们会在您直接下载文件时设置各种障碍,而不会看到这些广告或支付该费用。

许多网站都会为您提供帮助浏览图像、歌曲和视频等内容时使用“容器页面”。这可能是为了改善您的用户体验,让其他网站更难“深度链接”其内容,或者让您更难“窃取”“他们的内容。如果你点击链接,它会立即尝试在chrome中下载mp3。”。刚刚检查了Safari,现在看到了你所说的重定向。如果我单击链接,它会将我带到一个网页,我可以在该网页上收听歌曲,单击另一个链接下载歌曲,就像在Facebook上一样,等等。是的,我现在使用Safari时看到了重定向。但是当使用chrome时,链接只是弹出下载弹出窗口。我怀疑chrome和Safari的区别。更有可能的是,这与你跟踪链接的方式不同。这可能是您是从HTML页面单击链接还是从其他地方单击链接(基于
Referer
标题),或者您是通过在HTML页面上执行某些操作在获取cookie后单击链接,或者谁知道是什么。更多细节请参见我的答案。