通过python请求下载歌曲

Shi*_*tra 2 python urllib2 httprequest

我试图制作一个脚本来从互联网下载歌曲.我是第一次尝试使用"请求"库下载这首歌.但我无法播放这首歌.然后,我使用"urllib2"库做了同样的事情,这次我能够播放这首歌.

我们不能用"请求"库来下载歌曲吗?如果有,怎么样?

使用请求代码:

import requests
doc = requests.get("http://gaana99.com/fileDownload/Songs/0/28768.mp3")
f = open("movie.mp3","wb")
f.write(doc.text)
f.close()
Run Code Online (Sandbox Code Playgroud)

使用urllib2代码:

import urllib2
mp3file = urllib2.urlopen("http://gaana99.com/fileDownload/Songs/0/28768.mp3")
output = open('test.mp3','wb')
output.write(mp3file.read())
output.close()
Run Code Online (Sandbox Code Playgroud)

Tig*_*222 8

使用doc.content保存二进制数据:

import requests

doc = requests.get('http://gaana99.com/fileDownload/Songs/0/28768.mp3')
with open('movie.mp3', 'wb') as f:
    f.write(doc.content)
Run Code Online (Sandbox Code Playgroud)

说明

MP3文件只是二进制数据,您无法检索其文本部分.当你处理纯文本时,doc.text是理想的,但对于任何其他二进制格式,你必须使用doc.content.

您可以在设置get纯文本响应时检查使用的编码doc.encoding,否则为空:

>>> doc = requests.get('http://gaana99.com/fileDownload/Songs/0/28768.mp3')
>>> doc.encoding
# nothing

>>> doc = requests.get('http://www.example.org')
>>> doc.encoding
ISO-8859-1
Run Code Online (Sandbox Code Playgroud)