Pitone

Come usare Urllib in Python

Come usare Urllib in Python

Python contiene un modulo chiamato urllib per la gestione delle attività relative all'URL (Uniform Resource Locator). Questo modulo è installato in Python 3 per impostazione predefinita e recupera gli URL di protocolli diversi tramite il urlopen() funzione. Urllib può essere utilizzato per molti scopi, come leggere il contenuto del sito Web, effettuare richieste HTTP e HTTPS, inviare intestazioni di richiesta e recuperare intestazioni di risposta. Il urllib modulo contiene molti altri moduli per lavorare con gli URL, come urllib.richiesta, urllib.analizzare, e urllib.errore, tra gli altri. Questo tutorial ti mostrerà come usare il modulo Urllib in Python.

Esempio 1: apertura e lettura di URL con urllib.richiesta

Il urllib.richiesta contiene le classi e i metodi necessari per aprire e leggere qualsiasi URL. Il seguente script mostra come usare urllib.richiesta modulo per aprire un URL e leggere il contenuto dell'URL. qui, il urlopen() viene utilizzato per aprire l'URL, "https://www.linuxhint.com/."Se l'URL è valido, il contenuto dell'URL verrà archiviato nella variabile oggetto denominata risposta. Il leggere() metodo del risposta l'oggetto viene quindi utilizzato per leggere il contenuto dell'URL.

#!/usr/bin/env python3
# Importa il modulo di richiesta di urllib
import urllib.richiesta
# Apri l'URL specifico per la lettura usando urlopen()
risposta = urllib.richiesta.urlopen('https://www.linuxhint.com/')
# Stampa i dati di risposta dell'URL
print("L'output dell'URL è:\n\n",risposta.leggere())

Produzione

Il seguente output apparirà dopo aver eseguito lo script.

Esempio 2: analisi e annullamento dell'analisi degli URL con urllib.analizzare

Il urllib.analizzare viene utilizzato principalmente per dividere o unire i diversi componenti di un URL. Il seguente script mostra diversi usi del urllib.analizzare modulo. Le quattro funzioni di urllib.analizzare utilizzato nel seguente script include urlparse, urlunparse, urlsplit, e urlunsplit. Il urlparse il modulo funziona come urlsplit, e il urlunparse il modulo funziona come urlunsplit. C'è solo una differenza tra queste funzioni; questo è, urlparse e urlunparse contengono un parametro extra chiamato 'parametri' per la divisione e la funzione di unione. Qui, l'URL 'https://linuxhint.com/play_sound_python/' viene utilizzato per dividere e unire l'URL.

#!/usr/bin/env python3
 
# Importa il modulo di analisi di urllib
import urllib.analizzare
 
# Analisi dell'URL utilizzando urlparse()
urlParse = urllib.analizzare.urlparse('https://linuxhint.com/play_sound_python/')
print("\nL'output dell'URL dopo l'analisi:\n", urlParse)
 
# Partecipazione all'URL utilizzando urlunparse()
urlUnparse = urllib.analizzare.urlunparse(urlParse)
print("\nL'output di unione dell'URL di analisi:\n", urlUnparse)
 
# Analisi dell'URL utilizzando urlsplit()
urlSplit = urllib.analizzare.urlsplit('https://linuxhint.com/play_sound_python/')
print("\nL'output dell'URL dopo la divisione:\n", urlSplit)
 
# Partecipazione all'URL utilizzando urlunsplit()
urlUnsplit = urllib.analizzare.urlunsplit(urlSplit)
print("\nL'output di unione dell'URL diviso:\n",urlUnsplit)

Produzione

I seguenti quattro output appariranno dopo aver eseguito lo script.

Esempio 3: lettura dell'intestazione della risposta di HTML con urllib.richiesta

Lo script seguente mostra come le diverse parti dell'intestazione della risposta dell'URL possono essere recuperate tramite il Informazioni() metodo. Il urllib.richiesta modulo utilizzato per aprire l'URL, 'https://linuxhint.com/python_pause_user_input/,' e le informazioni di intestazione di questo URL vengono stampate tramite Informazioni() metodo. La parte successiva di questo script ti mostrerà come leggere ciascuna parte dell'intestazione separatamente. qui, il server, Data, e Tipo di contenuto i valori sono stampati separatamente.

#!/usr/bin/env python3
# Importa il modulo di richiesta di urllib
import urllib.richiesta
# Apri l'URL per la lettura
urlResponse = urllib.richiesta.urlopen('https://linuxhint.com/python_pause_user_input/')
# Lettura dell'output dell'intestazione della risposta dell'URL
print(urlResponse.Informazioni())
# Leggere le informazioni di intestazione separatamente
print('Server di risposta = ', urlResponse.info()["Server"])
print('La data di risposta è = ', urlResponse.info()["Data"])
print('Il tipo di contenuto della risposta è = ', urlResponse.info()["Tipo di contenuto"])

Produzione

Il seguente output apparirà dopo aver eseguito lo script.

Esempio 4: lettura delle risposte URL riga per riga

Nel seguente script viene utilizzato un indirizzo URL locale. Qui, un file HTML di prova chiamato test.html viene creato nella posizione, variabile/www/html. Il contenuto di questo file viene letto riga per riga tramite il pulsante  per ciclo continuo. Il striscia() viene quindi utilizzato il metodo per rimuovere lo spazio da entrambi i lati di ciascuna riga. Puoi usare qualsiasi file HTML dal server locale per testare lo script. Il contenuto del test.html il file utilizzato in questo esempio è riportato di seguito.

test.html:



Pagina di test


#!/usr/bin/env python3
 
# Importa urllib.modulo di richiesta
import urllib.richiesta
 
# Apri un URL locale per la lettura
risposta = urllib.richiesta.urlopen('http://localhost/test.html')
 
# Leggi l'URL dalla risposta
print('URL:', risposta.geturl())
 
# Leggi il testo della risposta riga per riga
print("\nLettura del contenuto:")
per la riga in risposta:
print(linea.striscia())

Produzione

Il seguente output apparirà dopo aver eseguito lo script.

Esempio 5: gestione delle eccezioni con urllib.errore.URLError

Il seguente script mostra come usare il URLError in Python tramite urllib.errore modulo. Qualsiasi indirizzo URL può essere preso come input dall'utente. Se l'indirizzo non esiste, allora an URLError verrà sollevata un'eccezione e verrà stampato il motivo dell'errore. Se il valore dell'URL è in un formato non valido, allora a ValoreErrore verrà generato e verrà stampato l'errore personalizzato.

#!/usr/bin/env python3
 
# Importa i moduli necessari
import urllib.richiesta
import urllib.errore
 
# prova a bloccare per aprire qualsiasi URL per la lettura
provare:
url = input("Inserisci un indirizzo URL: ")
risposta = urllib.richiesta.urlopen(url)
stampa (risposta.leggere())
 
# Cattura l'errore URL che verrà generato all'apertura di qualsiasi URL
tranne urllib.errore.URLError come e:
print("Errore URL:",e.Motivo)
# Rileva l'errore URL non valido
tranne ValueError:
print("Inserisci un indirizzo URL valido")

Produzione

Lo script viene eseguito tre volte nello screenshot seguente. Nella prima iterazione, l'indirizzo URL viene fornito in un formato non valido, generando un ValueError. L'indirizzo URL fornito nella seconda iterazione non esiste, generando un URLError. Nella terza iterazione viene fornito un indirizzo URL valido, quindi viene stampato il contenuto dell'URL.

Esempio 6: gestione delle eccezioni con urllib.errore.Errore HTTP

Il seguente script mostra come usare il Errore HTTP in Python tramite urllib.errore modulo. Un Errore HTML genera quando l'indirizzo URL specificato non esiste.

#!/usr/bin/env python3
# Importa i moduli necessari
import urllib.richiesta
import urllib.errore
 
# Accetta qualsiasi URL valido
url = input("Inserisci un indirizzo URL: ")
# Invia richiesta per l'URL
richiesta = urllib.richiesta.Richiesta (URL)
 
provare:
# Prova ad aprire l'URL
urllib.richiesta.urlopen (richiesta)
print("URL esistente")
tranne urllib.errore.Errore HTTP come e:
# Stampa il codice di errore e il motivo dell'errore
print("Codice errore:%d\nMotivo errore:%s" %(e.codice, e.Motivo))

Produzione

Qui lo script viene eseguito due volte. Il primo indirizzo URL preso come input esiste e il modulo ha stampato un messaggio. Il secondo indirizzo URL preso come input non esiste e il modulo ha generato il Errore HTTP.

Conclusione

Questo tutorial ha discusso molti usi importanti del of urllib utilizzando vari esempi per aiutare i lettori a conoscere le funzioni di questo modulo in Python.

I 5 migliori giochi arcade per Linux
Al giorno d'oggi, i computer sono macchine serie utilizzate per i giochi. Se non riesci a ottenere il nuovo punteggio più alto, saprai cosa intendo. I...
Battaglia per Wesnoth 1.13.6 Sviluppo rilasciato
Battaglia per Wesnoth 1.13.6 rilasciato il mese scorso, è la sesta versione di sviluppo nella 1.13.x e offre una serie di miglioramenti, in particolar...
Come installare League Of Legends su Ubuntu 14.04
Se sei un fan di League of Legends, questa è un'opportunità per testare League of Legends. Nota che LOL è supportato su PlayOnLinux se sei un utente L...