2016-08-24 13 views
1

インターネットから曲をダウンロードするためのスクリプトを作成しようとしていました。私は最初に "要求"ライブラリを使用して曲をダウンロードしようとしていました。しかし、私はその曲を演奏することができませんでした。それから、私は "urllib2"ライブラリを使って同じことをしました。今回はこの曲を演奏できました。python-requestsで曲をダウンロードする

「リクエスト」ライブラリを使用して曲をダウンロードすることはできませんか?はいの場合、どうですか?リクエストを使用して

コード: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() 

はコード:

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

答えて

5

使用doc.contentbinary dataを保存する:

import requests 

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

説明

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 
+1

あなたはまた、Unicodeではなくバイナリエンコーディングの使用を説明できますか? –

+0

少し説明を加えました。 –

関連する問題