de-vraag
  • Otázky
  • Značky
  • Používatelia
Oznámenia
Odmeny
Registrácia
Po registrácii budete informovaní o odpovediach a komentároch na vaše otázky.
Prihlásiť sa
Ak už máte konto, prihláste sa a skontrolujte nové oznámenia.
Za pridané otázky, odpovede a komentáre budú udelené odmeny.
Viac na
Zdroj
Upraviť
 Owen
Owen
Question

Ako stiahnem súbor cez protokol HTTP pomocou jazyka Python?

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?

808 2008-08-22T15:34:13+00:00 3
 kilojoules
kilojoules
Edited question 31 marec 2017 в 5:11
Programovanie
http
python
urllib
This question has 1 odpoveď in English, to read them log in to your account.
Solution / Answer
 Corey
Corey
22 august 2008 в 3:38
2008-08-22T15:38:22+00:00
Viac na
Zdroj
Upraviť
#8423472

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.

Deep LF
Deep LF
Edited answer 5 jún 2014 в 11:06
435
0
 Grant
Grant
22 august 2008 в 3:58
2008-08-22T15:58:17+00:00
Viac na
Zdroj
Upraviť
#8423473
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.

Matthew Strawbridge
Matthew Strawbridge
Edited answer 10 marec 2016 в 5:14
158
0
 akdom
akdom
22 august 2008 в 3:58
2008-08-22T15:58:52+00:00
Viac na
Zdroj
Upraviť
#8423474

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()
14
0
Pridať otázku
Kategórie
Všetky
Technológia
Kultúra / Rekreácia
Život / Umenie
Veda
Profesionálne
Obchod
Používatelia
Všetky
New
Popular
1
Jasur Fozilov
Registered pred 10 hodinami
2
Zuxriddin Muydinov
Registered pred dňom
3
Денис Анненский
Registered pred 3 dňami
4
365
Registered pred týždňom
5
True Image
Registered pred týždňom
DA
DE
EL
ES
FR
ID
IT
JA
NL
PT
RU
SK
TR
ZH
© de-vraag 2022
Zdroj
stackoverflow.com
na základe licencie cc by-sa 3.0 s uvedením autora