Come usare Urllib in Python

Come usare Urllib in Python

Python contiene un modulo chiamato Urllib per la gestione delle attività relative al localizzatore di risorse uniformi (URL). Questo modulo è installato in Python 3 per impostazione predefinita e recupera URL di diversi protocolli tramite il urlopen () funzione. Urllib può essere utilizzato per molti scopi, come la lettura del contenuto del sito Web, effettuare richieste HTTP e HTTPS, l'invio di intestazioni di richieste e il recupero di intestazioni di risposta. IL Urllib Il modulo contiene molti altri moduli per lavorare con URL, come Urllib.richiesta, Urllib.analizzare, E Urllib.errore, tra gli altri. Questo tutorial ti mostrerà come utilizzare il modulo Urllib in Python.

Esempio 1: apertura e lettura degli URL con Urllib.richiesta

IL Urllib.richiesta Il modulo 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 () Il metodo viene utilizzato per aprire l'URL, "https: // www.Linuxhint.com/."Se l'URL è valido, il contenuto dell'URL verrà memorizzato 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
# Modulo di richiesta di importazione di Urllib
Importa 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
Stampa ("L'output dell'URL è: \ n \ n", risposta.Leggere())

Produzione

Il seguente output apparirà dopo aver eseguito lo script.

Esempio 2: URL di analisi e imprudente con Urllib.analizzare

IL Urllib.analizzare Il modulo viene utilizzato principalmente per dividere o unirsi ai 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 contenere un parametro extra chiamato 'parametri'Per la divisione e la funzione di giunzione. Qui, l'URL 'https: // linuxhint.com/play_sound_python/'viene utilizzato per la divisione e l'adesione all'URL.

#!/usr/bin/env python3
# Importa il modulo di analisi di Urllib
Importa Urllib.analizzare
# URL di analisi usando Urlparse ()
urlparse = Urllib.analizzare.urlparse ('https: // linuxhint.com/play_sound_python/')
print ("\ nthe output di URL dopo l'analisi: \ n", urlparse)
# Unirsi all'URL usando urlunparse ()
urlunparse = Urllib.analizzare.urlunparse (urlparse)
print ("\ nthe giunti all'output dell'url di analisi: \ n", urlunparse)
# URL di analisi utilizzando UrlSplit ()
urlsplit = Urllib.analizzare.urlsplit ('https: // linuxhint.com/play_sound_python/')
print ("\ nthe output di URL dopo la divisione: \ n", urlsplit)
# Unirsi all'URL usando UrlunSplit ()
urlunsplit = Urllib.analizzare.urlunsplit (Urlsplit)
print ("\ nthe output di giunzione dell'URL di scissione: \ n", urlunsplit)

Produzione

Le seguenti quattro uscite appariranno dopo aver eseguito lo script.

Esempio 3: Lettura Intestazione di risposta di HTML con Urllib.richiesta

Il seguente script mostra come le diverse parti dell'intestazione di risposta dell'URL possono essere recuperate tramite il informazioni() metodo. IL Urllib.richiesta Modulo usato per aprire l'URL, "https: // linuxhint.com/python_pause_user_input/,'e le informazioni di intestazione di questo URL sono stampate tramite il informazioni() metodo. La parte successiva di questo script ti mostrerà come leggere ogni parte dell'intestazione separatamente. Qui, il server, Data, E Tipo di contenuto I valori sono stampati separatamente.

#!/usr/bin/env python3
# Modulo di richiesta di importazione di Urllib
Importa Urllib.richiesta
# Apri l'URL per la lettura
urlResponse = Urllib.richiesta.urlopen ('https: // linuxhint.com/python_pause_user_input/')
# Lettura Output di intestazione della risposta dell'URL
Stampa (UrlResponse.informazioni())
# Lettura di informazioni sull'intestazione separatamente
Print ('Response Server =', UrlResponse.info () ["server"])
print ('Data di risposta è =', UrlResponse.info () ["data"])
print ('tipo di contenuto di risposta è =', urlResponse.info () ["tipo di contenuto"])

Produzione

Il seguente output apparirà dopo aver eseguito lo script.

Esempio 4: lettura delle risposte URL riga per linea

Un indirizzo URL locale viene utilizzato nel seguente script. Qui, un file HTML di test denominato test.html è creato nella posizione, var/www/html. Il contenuto di questo file viene letto riga per riga tramite il per ciclo continuo. IL striscia() il metodo viene quindi utilizzato per rimuovere lo spazio da entrambi i lati di ogni linea. È possibile utilizzare 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
Importa Urllib.richiesta
# Apri un URL locale per la lettura
Risposta = Urllib.richiesta.Urlopen ('http: // localhost/test.html ')
# Leggi l'URL dalla risposta
stampa ('url:', risposta.getURL ())
# Leggi la riga di testo di risposta per riga
print ("\ nreading content:")
per la linea in risposta:
Stampa (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 il Urllib.errore modulo. Qualsiasi indirizzo URL può essere preso come input dall'utente. Se l'indirizzo non esiste, allora un Urlerror verrà sollevata l'eccezione e il motivo dell'errore stamperà. Se il valore dell'URL è in un formato non valido, allora a Valorerror verrà sollevato e l'errore personalizzato verrà stampato.

#!/usr/bin/env python3
# Importa i moduli necessari
Importa Urllib.richiesta
Importa Urllib.errore
# prova il blocco per aprire qualsiasi URL per la lettura
Tentativo:
url = input ("Immettere qualsiasi indirizzo URL:")
Risposta = Urllib.richiesta.Urlopen (URL)
Stampa (risposta.Leggere())
# Cattura l'errore URL che genererà quando si apre qualsiasi URL
Tranne Urllib.errore.Urlerror come e:
Stampa ("Errore URL:", E.motivo)
# Cattura l'errore URL non valido
Tranne ValueRror:
Stampa ("Immettere un indirizzo URL valido")

Produzione

Lo script viene eseguito tre volte nella seguente screenshot. Nella prima iterazione, l'indirizzo URL è riportato in un formato non valido, generando un valorerror. L'indirizzo URL indicato nella seconda iterazione non esiste, generando un urlerror. Un indirizzo URL valido è riportato nella terza iterazione e quindi il contenuto dell'URL viene stampato.

Esempio 6: gestione delle eccezioni con Urllib.errore.Httperror

Il seguente script mostra come usare il Httperror in Python tramite il Urllib.errore modulo. UN Htmlerror Genera quando l'indirizzo URL dato non esiste.

#!/usr/bin/env python3
# Importa i moduli necessari
Importa Urllib.richiesta
Importa Urllib.errore
# Prendi input qualsiasi URL valido
url = input ("Immettere qualsiasi indirizzo URL:")
# Invia richiesta per l'URL
Richiesta = Urllib.richiesta.Richiesta (URL)
Tentativo:
# Prova ad aprire l'URL
Urllib.richiesta.Urlopen (richiesta)
stampa ("URL esiste")
Tranne Urllib.errore.Httperror come e:
# Stampa il codice di errore e il motivo dell'errore
Print ("Codice di errore:%d \ nerror motivo:%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 assunto come input non esiste e il modulo ha generato il Httperror.

Conclusione

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