歌曲的下载地址为http://music.163.com/song/media/outer/url?id=xxx
用urllib.request.urlretrieve方法下载总是为0KB。但是奇怪的是网上居然没有任何解决方法。。只能自己试了,最先以为是中文名的关系,但改成1.mp3这种也不行。
后来想着是不是urlretrieve下载不行,就改成下面这种方法试,结果还是不行。
with open(m4aUrl_name,'wb') as f:
f.write(mp.content)
最后实在没有办法准备放弃时突然看到一篇文章里,f.write时可以带headers,于是就试了下,果然就可以正常下载了。特此记录。代码如下:
import requests import urllib headers = { 'Referer': 'https://music.163.com/', "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.89 " "Safari/537.36" } download_url = 'http://music.163.com/song/media/outer/url?id=327096' with open('1.mp3', 'wb') as f: f.write(requests.get(download_url, headers=headers).content)