Python

Ako používať Urllib v Pythone

Ako používať Urllib v Pythone

Python obsahuje modul s názvom urllib na spracovanie úloh týkajúcich sa Uniform Resource Locator (URL). Tento modul je predvolene nainštalovaný v Pythone 3 a načítava adresy URL rôznych protokolov prostredníctvom servera urlopen () funkcia. Urllib môžete využiť na mnohé účely, napríklad na čítanie obsahu webových stránok, vytváranie požiadaviek HTTP a HTTPS, odosielanie hlavičiek požiadaviek a načítanie hlavičiek odpovedí. The urllib modul obsahuje mnoho ďalších modulov pre prácu s URL, ako napr urllib.žiadosť, urllib.analyzovať, a urllib.chyba, medzi inými. Tento tutoriál vám ukáže, ako používať modul Urllib v Pythone.

Príklad 1: Otváranie a čítanie adries URL pomocou urllib.žiadosť

The urllib.žiadosť modul obsahuje triedy a metódy potrebné na otvorenie a čítanie ľubovoľnej adresy URL. Nasledujúci skript ukazuje, ako sa používa urllib.žiadosť modul na otvorenie adresy URL a na prečítanie obsahu adresy URL. Tu je urlopen () metóda sa používa na otvorenie adresy URL, “https: // www.linuxhint.com /.„Ak je adresa URL platná, potom bude obsah adresy URL uložený v premennej objektu s názvom odpoveď. The čítať() metóda odpoveď objekt sa potom použije na čítanie obsahu adresy URL.

#!/ usr / bin / env python3
# Import požiadavky modulu urllib
import urllib.žiadosť
# Otvorte konkrétnu adresu URL na čítanie pomocou adresy urlopen ()
odpoveď = urllib.žiadosť.urlopen ('https: // www.linuxhint.com / ')
# Vytlačte údaje o odozve adresy URL
print ("Výstup adresy URL je: \ n \ n", odpoveď.čítať())

Výkon

Po spustení skriptu sa zobrazí nasledujúci výstup.

Príklad 2: Analýza a rozloženie adries URL pomocou adresy urllib.analyzovať

The urllib.analyzovať modul sa primárne používa na rozdelenie alebo spojenie rôznych komponentov adresy URL. Nasledujúci skript zobrazuje rôzne použitia súboru urllib.analyzovať modul. Štyri funkcie urllib.analyzovať použitý v nasledujúcom skripte zahrnúť urlparse, urlunparse, urlsplit, a urlunsplit. The urlparse modul funguje ako urlsplit, a urlunparse modul funguje ako urlunsplit. Medzi týmito funkciami je iba jeden rozdiel; to je, urlparse a urlunparse obsahovať ďalší parameter s názvom 'params„na rozdelenie a funkciu spájania. Tu je adresa URL https: // linuxhint.com / play_sound_python / 'sa používa na rozdelenie a pripojenie adresy URL.

#!/ usr / bin / env python3
 
# Importovať parsovací modul urllib
import urllib.analyzovať
 
# Analýza adresy URL pomocou urlparse ()
urlParse = urllib.analyzovať.urlparse ('https: // linuxhint.com / play_sound_python / ')
print ("\ nVýstup adresy URL po analýze: \ n", urlParse)
 
# Pripojenie URL pomocou urlunparse ()
urlUnparse = urllib.analyzovať.urlunparse (urlParse)
print ("\ nVstupný výstup analýzy adresy URL: \ n", urlUnparse)
 
# Analýza adresy URL pomocou adresy urlsplit ()
urlSplit = urllib.analyzovať.urlsplit ('https: // linuxhint.com / play_sound_python / ')
print ("\ nVýstup adresy URL po rozdelení: \ n", urlSplit)
 
# Pripojenie URL pomocou urlunsplit ()
urlUnsplit = urllib.analyzovať.urlunsplit (urlSplit)
print ("\ nVýstup spojenia rozdelenej adresy URL: \ n", urlUnsplit)

Výkon

Po spustení skriptu sa zobrazia nasledujúce štyri výstupy.

Príklad 3: Čítanie hlavičky odpovede HTML pomocou urllib.žiadosť

Nasledujúci skript ukazuje, ako možno rôzne časti hlavičky odpovede adresy URL načítať prostredníctvom servera Info() metóda. The urllib.žiadosť modul používaný na otvorenie adresy URL, 'https: // linuxhint.com / python_pause_user_input /,"a informácie o hlavičke tejto adresy URL sa tlačia cez Info() metóda. Ďalšia časť tohto skriptu vám ukáže, ako čítať každú časť hlavičky osobitne. Tu je Server, Dátum, a Druh obsahu hodnoty sa tlačia osobitne.

#!/ usr / bin / env python3
# Import požiadavky modulu urllib
import urllib.žiadosť
# Otvorte URL na čítanie
urlResponse = urllib.žiadosť.urlopen ('https: // linuxhint.com / python_pause_user_input / ')
# Čítanie výstupu hlavičky odpovede z adresy URL
tlačiť (urlResponse.Info())
# Čítanie informácií v hlavičke osobitne
print ('Server odpovedí =', urlResponse.info () ["Server"])
print ('Dátum odpovede je =', urlResponse.info () ["dátum"])
print ('Typ obsahu odpovede je =', urlResponse.info () ["Content-Type"])

Výkon

Po spustení skriptu sa zobrazí nasledujúci výstup.

Príklad 4: Čítanie odpovedí URL riadok po riadku

V nasledujúcom skripte sa používa lokálna adresa URL. Tu je testovací súbor HTML s názvom test.html je vytvorený v umiestnení, var /www / html. Obsah tohto súboru sa číta riadok po riadku pomocou  pre slučka. The pásik () potom sa použije metóda na odstránenie medzery z oboch strán každého riadku. Na otestovanie skriptu môžete použiť akýkoľvek súbor HTML z miestneho servera. Obsah test.html súbor použitý v tomto príklade je uvedený nižšie.

test.html:



Testovacia stránka


#!/ usr / bin / env python3
 
# Importovať urllib.modul žiadosti
import urllib.žiadosť
 
# Otvorte miestnu adresu URL na čítanie
odpoveď = urllib.žiadosť.urlopen ('http: // localhost / test.html ')
 
# Prečítajte si adresu URL z odpovede
print ('URL:', odpoveď.geturl ())
 
# Prečítajte si text odpovede po riadkoch
print ("\ nČítajúci obsah:")
pre linkovú odpoveď:
tlač (riadok.pásik ())

Výkon

Po spustení skriptu sa zobrazí nasledujúci výstup.

Príklad 5: Spracovanie výnimiek s urllib.chyba.URLError

Nasledujúci skript ukazuje, ako používať URLError v Pythone cez urllib.chyba modul. Akúkoľvek adresu URL je možné považovať za vstup používateľa. Ak adresa neexistuje, potom URLError výnimka sa vyvolá a vytlačí sa dôvod chyby. Ak je hodnota adresy URL v neplatnom formáte, potom a ValueError sa zvýši a vytlačí sa vlastná chyba.

#!/ usr / bin / env python3
 
# Importujte potrebné moduly
import urllib.žiadosť
import urllib.chyba
 
# skúste zablokovať a otvorte ľubovoľnú adresu URL na čítanie
skúste:
url = vstup ("Zadajte ľubovoľnú adresu URL:")
odpoveď = urllib.žiadosť.urlopen (url)
tlač (odpoveď.čítať())
 
# Chytiť chybu adresy URL, ktorá sa vygeneruje pri otvorení ľubovoľnej adresy URL
okrem urllib.chyba.Chyba URLE ako e:
print ("Chyba URL:", napr.dôvod)
# Chytiť chybu neplatnej adresy URL
okrem ValueError:
tlačiť („Zadajte platnú adresu URL“)

Výkon

Na nasledujúcej snímke obrazovky sa skript vykoná trikrát. V prvej iterácii je adresa URL uvedená v neplatnom formáte, čím sa vygeneruje chyba ValueError. Adresa URL uvedená v druhej iterácii neexistuje, čo generuje chybu URLE. V tretej iterácii je uvedená platná adresa URL, takže sa vytlačí obsah adresy URL.

Príklad 6: Spracovanie výnimiek s urllib.chyba.Chyba HTTP

Nasledujúci skript ukazuje, ako používať Chyba HTTP v Pythone cez urllib.chyba modul. An HTMLError sa vygeneruje, keď daná URL adresa neexistuje.

#!/ usr / bin / env python3
# Importujte potrebné moduly
import urllib.žiadosť
import urllib.chyba
 
# Zadajte platnú adresu URL
url = vstup ("Zadajte ľubovoľnú adresu URL:")
# Pošlite požiadavku na URL
požiadavka = urllib.žiadosť.Žiadosť (adresa URL)
 
skúste:
# Skúste otvoriť adresu URL
urllib.žiadosť.urlopen (žiadosť)
tlačiť („URL existuje“)
okrem urllib.chyba.Chyba HTTP ako e:
# Vytlačte chybový kód a dôvod chyby
print ("Kód chyby:% d \ nChyba chyby:% s"% (napr.kód, napr.dôvod))

Výkon

Tu sa skript vykoná dvakrát. Prvá adresa URL použitá ako vstup existuje a modul vytlačil správu. Druhá URL adresa braná ako vstup neexistuje a modul vygeneroval Chyba HTTP.

Záver

V tomto výučbe sa diskutovalo o mnohých dôležitých použitiach súboru urllib modulu pomocou rôznych príkladov, ktoré čitateľom pomôžu spoznať funkcie tohto modulu v jazyku Python.

Hry Výukový program Shadow of the Tomb Raider pre Linux
Výukový program Shadow of the Tomb Raider pre Linux
Shadow of the Tomb Raider je dvanásty prírastok do série Tomb Raider - franšíza akčných adventúr vytvorená Eidosom Montrealom. Túto hru prijali kritic...
Hry Ako zvýšiť rýchlosť FPS v systéme Linux?
Ako zvýšiť rýchlosť FPS v systéme Linux?
FPS znamená Počet snímok za sekundu. Úlohou FPS je merať snímkovú frekvenciu pri prehrávaní videa alebo herných výkonoch. Jednoducho povedané, počet n...
Hry Najlepšie hry Oculus App Lab
Najlepšie hry Oculus App Lab
Ak ste vlastníkom náhlavnej súpravy Oculus, musíte byť informovaní o bočnom nakladaní. Sideloading je proces inštalácie neuloženého obsahu do náhlavne...