Mám malý nástroj, ktorý používam na sťahovanie MP3 z webovej stránky podľa plánu a potom vytvára/aktualizuje súbor XML podcastu, ktorý som samozrejme pridal do iTunes.
Spracovanie textu, ktoré vytvára/aktualizuje súbor XML, je napísané v jazyku Python. Na stiahnutie skutočného MP3 však používam wget vo vnútri súboru Windows .bat
. Radšej by som však mal celý nástroj napísaný v jazyku Python.
Ťažko som však našiel spôsob, ako súbor v Pythone skutočne načítať, preto som sa uchýlil k wget
.
Ako teda stiahnem súbor pomocou Pythonu?
V jazyku Python 2 použite urllib2, ktorý je súčasťou štandardnej knižnice.
import urllib2
response = urllib2.urlopen('http://www.example.com/')
html = response.read()
Toto je najzákladnejší spôsob používania knižnice bez spracovania chýb. Môžete robiť aj zložitejšie veci, napríklad meniť hlavičky. Dokumentáciu nájdete tu.
import urllib2
mp3file = urllib2.urlopen("http://www.example.com/songs/mp3.mp3")
with open('test.mp3','wb') as output:
output.write(mp3file.read())
Funkcia wb
v príkaze open('test.mp3','wb')
otvorí súbor (a vymaže akýkoľvek existujúci súbor) v binárnom režime, takže s ním môžete ukladať dáta namiesto iba textu.
Súhlasím s Coreym, urllib2 je kompletnejší ako urllib a mal by sa pravdepodobne používať, ak chcete robiť zložitejšie veci, ale aby boli odpovede úplnejšie, urllib je jednoduchší modul, ak chcete len základy:
import urllib
response = urllib.urlopen('http://www.example.com/sound.mp3')
mp3 = response.read()
Bude fungovať dobre. Alebo, ak sa nechcete zaoberať objektom "response", môžete zavolať read() priamo:
import urllib
mp3 = urllib.urlopen('http://www.example.com/sound.mp3').read()