“La biblioteca di Python richiede è una delle librerie più versatili e preziose nell'ecosistema Python. Le sue caratteristiche e l'incredibile semplicità lo rendono utile per alimentare numerose applicazioni Python."
Questo tutorial ci insegnerà come scaricare un file da un determinato URL utilizzando il pacchetto di richieste.
Installazione e configurazione
Prima di utilizzare il metodo delle richieste, è necessario assicurarsi che sia installato nel tuo ambiente. Puoi farlo eseguendo il comando PIP come mostrato:
$ Sudo Pip Installa richieste
O
$ sudo pip3 Installa richieste
Su Windows, puoi eseguire il comando:
$ Python -m PIP Installa richieste
Se hai installato Conda, eseguire il comando:
CONDA INSTALLA CONSITAZIONI ANACONDA
Esempio 1 - Scarica un file semplice
Possiamo scaricare un file utilizzando il modulo richieste specificando l'URL nel file e utilizzando il modulo file Python per scrivere il contenuto a un determinato nome file.
Un'illustrazione di esempio è mostrata di seguito:
$ touch ~/download_image.Py
Modifica il file e aggiungi il codice:
$ vim ~/download_image.Py
richieste di importazione
url = 'https: // upload.Wikimedia.Org/Wikipedia/Commons/A/Af/Tux.png '
R = richieste.get (URL, abilit_redirects = true)
con open ('smoking.png ',' wb ') come f:
F.scrittore.contenuto)
Nel codice sopra, iniziamo importando il modulo richieste. Creiamo quindi una variabile che tiene l'URL al file che desideriamo scaricare. In questo caso, vogliamo scaricare un'immagine.
Nella terza riga, creiamo un oggetto di risposta HTTP e facciamo una richiesta OTTIENI all'URL specificato. Abbiamo anche impostato i consentire_redirects su True per consentire al client di seguire i reindirizzamenti (se presenti). L'oggetto di risposta viene quindi salvato nella variabile chiamata r.
Infine, salva l'oggetto ricevuto in un file come smoking.PNG in modalità binaria.
È quindi possibile controllare la directory in cui lo script si trova per lo smoking.file png.
Esempio 2 - Scarica file di grandi dimensioni
Nell'esempio sopra, usiamo la R.Content Func, che memorizza il file come stringa. Questo è pratico quando si scarica piccoli file. Tuttavia, quando si scarica file di grandi dimensioni, la funzione non gestirà la scrittura dei dati richiesti contemporaneamente.
Per risolverlo, dobbiamo scaricare il file come flussi. Quindi, possiamo usare la R.funzione iter_content e impostare il parametro del flusso su true.
Questo perché usando la R.Funzione di content () con parametro flusso su true manterrà aperta la connessione e la risposta e non leggi il file specificato.
Il r.La funzione iter_content ci consente di risolvere questo problema.
Un esempio è come mostrato:
richieste di importazione
url = "https: // hastie.Su.Domains/islr2/islrv2_website.PDF"
R = richieste.get (URL, abilit_redirects = true, stream = true)
con open ('islrv2.pdf ',' wb ') come file:
per chunk in r.iter_content (chunk_size = 1024):
Se chunk:
file.Scrivi (chunk)
Il codice sopra utilizza un loop per scrivere i blocchi dei dati (1024 byte ciascuno) nel file specificato.
Esempio 3 - Controllo del tipo di file prima del download
Possiamo controllare il tipo di contenuto ricevuto dalle intestazioni. Possiamo quindi utilizzare questo valore per verificare se il file che desideriamo scaricare è corretto.
Ad esempio, se vogliamo scaricare un file ISO e ricevere HTML o tipo di testo, sappiamo che si tratta di un file errato e chiudere la connessione.
Un codice di esempio è come mostrato:
richieste di importazione
url = "https: // cdimage.Debian.Org/Debian-CD/Current/AMD64/ISO-DVD/Debian-11.4.0-AMD64-DVD-1.iso "
R = richieste.get (URL, abilit_redirects = true, stream = true)
H = richieste.Head (URL, abilit_redirects = true)
Intestazione = H.testate
content_type = header.get ("contenuti-type")
Se 'html' in content_type.inferiore():
R.vicino()
Stampa ("Tipo di file errato")
Se 'testo' in content_type ().inferiore():
R.vicino()
Stampa ("Tipo di file errato")
altro:
con open ('islrv2.iso ',' wb ') come file:
per chunk in r.iter_content (chunk_size = 1024):
Se chunk:
file.Scrivi (chunk)
Chiusura
Hai imparato come scaricare un file utilizzando il modulo Python Richieste in questo articolo. Hai anche imparato a scaricare file di grandi dimensioni.
Grazie per aver letto!!