wget下载指定url资源失败


如果知道一首歌的地址,比如说 这个地址 ,在浏览器输入这个地址,然后ctrl-s就可以保存这首歌曲。如果用wget下载这首歌,如下:

wget http://ftp.luoo.net/radio/radio447/01.mp3 -O demo.mp3

下载下来的是网站首页的html文件,这个是为什么呢?怎样才能用wget或者是其他程序下载这首歌?

wget html5

凯文boom 11 years ago

当你使用 wget,发送请求时有一行显示
HTTP request sent, awaiting response... 302 Object moved
然后直接重定向到网站的首页,下下来的就是网站首页的页面了。

所以在服务器端确实有限制,所以我们需要在 http 请求头上做点手脚,来模仿浏览器。

我们来使用 python urllib2 这个库来帮助我们实现

#!/usr/bin/env python
#coding: utf8
import urllib2

url = 'http://ftp.luoo.net/radio/radio448/01.mp3'
user_agent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22'
headers = {
    'User-Agent': user_agent,
    'Referer': url
}

req = urllib2.Request(url, None, headers)
response = urllib2.urlopen(req)
data = response.read()

f = open('010.mp3','wb') # 二进制文件写入需要加入b
f.write(data)
#f.writelines(data)
f.close()
梅尔西迪斯 answered 11 years ago

Your Answer