繁体   English   中英

使用Python urllib2下载链接

[英]Downloading links with Python urllib2

我想从页面上下载mp3,但是我得到的只是html,而不是mp3本身。 我正在使用的代码来自此链接: https : //stackoverflow.com/a/16518224/2137668

为什么我无法获得mp3? 这是一个测试示例,显示它已以html下载: http : //www5.zippyshare.com/d/77609120/61098/Cleavage%20-%20Prove%20%28Original%20Mix%29%20%5bquality-dance- music.com%5d.mp3

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

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

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

如果是第三名,他们通常会为此提供更多保护。 仅举一个例子,他们可能会要求您拥有一个坐在下载页面上并等待30秒计时器而获得的Cookie,并且该cookie仅在30分钟内有效。

如果您对HTTP和JavaScript的理解足够好,并且不想担心违反它们的服务条款,则通常可以对它们的每个保护进行反向工程,并编写自己的下载脚本,直到下个月对它们进行更改之前,这些脚本都可以使用,但是这通常不值得做。

无论如何,考虑到该站点的名称为zippyshare,我猜这是其中的最后一个。 这些类型的网站通过在您每次下载文件时向您展示广告,并提示您每月支付费用以获取直接/加速/任何下载等来赚钱,等等,因此它们会为您带来各种障碍您直接下载文件而无需查看这些广告或无需支付费用的方式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM