Python

Kako uporabljati Urllib v Pythonu

Kako uporabljati Urllib v Pythonu

Python vsebuje modul z imenom urllib za obdelavo nalog, povezanih z enotnim lokatorjem virov (URL). Ta modul je privzeto nameščen v Python 3 in prek URL-jev pridobi URL-je različnih protokolov urlopen () funkcijo. Urllib se lahko uporablja za številne namene, na primer za branje vsebine spletnega mesta, pošiljanje zahtev HTTP in HTTPS, pošiljanje glav zahtev in pridobivanje odzivnih glav. The urllib vsebuje veliko drugih modulov za delo z URL-ji, kot je urllib.prošnja, urllib.razčleni, in urllib.napaka, med ostalimi. Ta vadnica vam bo pokazala, kako uporabljati modul Urllib v Pythonu.

Primer 1: Odpiranje in branje URL-jev z urllib.prošnja

The urllib.prošnja modul vsebuje razrede in metode, potrebne za odpiranje in branje katerega koli URL-ja. Naslednji skript prikazuje, kako uporabljati urllib.prošnja modul za odpiranje URL-ja in branje vsebine URL-ja. Tukaj urlopen () metoda se uporablja za odpiranje URL-ja,https: // www.linuxhint.com /."Če je URL veljaven, bo vsebina URL-ja shranjena v imenovani spremenljivki predmeta odziv. The preberi () metoda odziv objekt nato uporabi za branje vsebine URL-ja.

#!/ usr / bin / env python3
# Uvozni modul zahteve urllib
uvozni urllib.prošnja
# Odprite določen URL za branje s pomočjo urlopen ()
odgovor = urllib.prošnja.urlopen ('https: // www.linuxhint.com / ')
# Natisnite podatke o odzivu URL-ja
print ("Izhod URL je: \ n \ n", odgovor.preberi ())

Izhod

Po zagonu skripta se prikaže naslednji izhod.

Primer 2: Razčlenjevanje in odstranjevanje URL-jev z urllib.razčleni

The urllib.razčleni modul se uporablja predvsem za ločevanje ali združevanje različnih komponent URL-ja. Naslednji skript prikazuje različne načine uporabe urllib.razčleni modul. Štiri funkcije urllib.razčleni ki se uporablja v naslednjem skriptu urlparse, urlunparse, urlsplit, in urlunsplit. The urlparse modul deluje kot urlsplit, in urlunparse modul deluje kot urlunsplit. Med temi funkcijami je le ena razlika; to je, urlparse in urlunparse vsebujejo dodaten parameter z imenom 'params'za razdeljevanje in združevanje. Tukaj je URL 'https: // linuxhint.com / play_sound_python / 'se uporablja za razdelitev in pridružitev URL-ju.

#!/ usr / bin / env python3
 
# Uvozi razčlenjevalni modul urllib
uvozni urllib.razčleni
 
# Razčlenjevanje URL-ja z uporabo urlparse ()
urlParse = urllib.razčleni.urlparse ('https: // linuxhint.com / play_sound_python / ')
print ("\ nIzhod URL-ja po razčlenjevanju: \ n", urlParse)
 
# Pridružitev URL-ju z uporabo urlunparse ()
urlUnparse = urllib.razčleni.urlunparse (urlParse)
print ("\ nZdruženi izhod URL-ja za razčlenjevanje: \ n", urlUnparse)
 
# Razčlenjevanje URL-ja z uporabo urlsplit ()
urlSplit = urllib.razčleni.urlsplit ('https: // linuxhint.com / play_sound_python / ')
print ("\ nIzhod URL-ja po razdelitvi: \ n", urlSplit)
 
# Pridružitev URL-ju z uporabo urlunsplit ()
urlUnsplit = urllib.razčleni.urlunsplit (urlSplit)
print ("\ nZdruženi izhod delitve URL-ja: \ n", urlUnsplit)

Izhod

Po zagonu skripta se bodo pojavili naslednji štirje izhodi.

Primer 3: Branje glave odziva HTML-ja z urllib.prošnja

Naslednji skript prikazuje, kako je mogoče dobiti različne dele glave odziva URL-ja prek info () metoda. The urllib.prošnja modul, ki se uporablja za odpiranje URL-ja, 'https: // linuxhint.com / python_pause_user_input /,'in informacije o glavi tega URL-ja se natisnejo prek info () metoda. Naslednji del tega skripta vam bo pokazal, kako prebrati vsak del glave posebej. Tukaj Strežnik, Datum, in Content-Type vrednosti se natisnejo ločeno.

#!/ usr / bin / env python3
# Uvozni modul zahteve urllib
uvozni urllib.prošnja
# Odprite URL za branje
urlResponse = urllib.prošnja.urlopen ('https: // linuxhint.com / python_pause_user_input / ')
# Branje izhoda glave odziva URL-ja
print (urlResponse.info ())
# Ločeno branje informacij v glavi
print ('Strežnik odzivov =', urlResponse.info () ["Strežnik"])
print ('Datum odziva je =', urlResponse.info () ["Datum"])
print ('Vrsta vsebine odziva je =', urlResponse.info () ["Vrsta vsebine"])

Izhod

Po zagonu skripta se prikaže naslednji izhod.

Primer 4: Branje odzivov URL-jev po vrsticah

V naslednjem skriptu je uporabljen lokalni naslov URL. Tukaj je imenovana preskusna datoteka HTML preskus.html je ustvarjen na lokaciji, var /www / html. Vsebina te datoteke se prebere vrstico za vrstico prek  za zanko. The trak () metoda se nato uporabi za odstranitev prostora z obeh strani vsake vrstice. Za preizkus skripta lahko uporabite katero koli datoteko HTML z lokalnega strežnika. Vsebina preskus.html datoteka, uporabljena v tem primeru, je navedena spodaj.

preskus.html:



Preskusna stran


#!/ usr / bin / env python3
 
# Uvozi urllib.modul za zahtevo
uvozni urllib.prošnja
 
# Odprite lokalni URL za branje
odgovor = urllib.prošnja.urlopen ('http: // localhost / test.html ')
 
# Preberite URL iz odgovora
print ('URL:', odgovor.geturl ())
 
# Preberite besedilo odziva po vrsticah
print ("\ nBeri vsebino:")
za vrstico v odgovor:
natisni (vrstica.strip ())

Izhod

Po zagonu skripta se prikaže naslednji izhod.

Primer 5: Obravnava izjem z urllibom.napaka.Napaka URLE

Naslednji skript prikazuje, kako uporabljati Napaka URLE v Pythonu prek urllib.napaka modul. Vsak naslov URL lahko uporabnik sprejme kot vnos. Če naslov ne obstaja, potem Napaka URLE izjema bo prikazana in razlog za napako se bo natisnil. Če je vrednost URL-ja v neveljavni obliki, potem a ValueError bo prikazano in napaka po meri se bo natisnila.

#!/ usr / bin / env python3
 
# Uvozite potrebne module
uvozni urllib.prošnja
uvozni urllib.napaka
 
# poskusite blokirati, da odprete kateri koli URL za branje
poskusite:
url = input ("Vnesite kateri koli naslov URL:")
odgovor = urllib.prošnja.urlopen (url)
natisni (odgovor.preberi ())
 
# Ujemite napako URL-ja, ki se bo pojavila ob odpiranju katerega koli URL-ja
razen urllib.napaka.URLError kot e:
print ("Napaka URL-ja:", npr.razlog)
# Ujemite neveljavno napako URL-ja
razen ValueError:
print ("Vnesite veljaven naslov URL")

Izhod

Na naslednjem posnetku zaslona se skript izvede trikrat. V prvi ponovitvi je naslov URL podan v neveljavni obliki, kar ustvarja napako ValueError. Naslov URL, naveden v drugi ponovitvi, ne obstaja in ustvarja napako URLEr. V tretji ponovitvi je naveden veljaven naslov URL, zato se vsebina URL-ja natisne.

Primer 6: Obravnava izjem z urllibom.napaka.HTTPError

Naslednji skript prikazuje, kako uporabljati HTTPError v Pythonu prek urllib.napaka modul. An Napaka HTMLE ustvari, ko dani naslov URL ne obstaja.

#!/ usr / bin / env python3
# Uvozite potrebne module
uvozni urllib.prošnja
uvozni urllib.napaka
 
# Vnesite poljuben veljaven URL
url = input ("Vnesite kateri koli naslov URL:")
# Pošlji zahtevo za URL
zahteva = urllib.prošnja.Zahteva (url)
 
poskusite:
# Poskusite odpreti URL
urllib.prošnja.urlopen (zahteva)
print ("URL obstaja")
razen urllib.napaka.HTTPError kot e:
# Natisnite kodo napake in razlog za napako
print ("Koda napake:% d \ nVzrok napake:% s"% (npr.koda, npr.razlog))

Izhod

Tu se skript izvede dvakrat. Obstaja prvi naslov URL, vzeti kot vhod, in modul je natisnil sporočilo. Drugi naslov URL, sprejet kot vhod, ne obstaja in modul je ustvaril HTTPError.

Zaključek

Ta vadnica je razpravljala o številnih pomembnih uporabah urllib z različnimi primeri pomaga bralcem poznati funkcije tega modula v Pythonu.

Uporabna orodja za igralce Linux
Če radi igrate igre na Linuxu, obstaja verjetnost, da ste za izboljšanje igralne izkušnje uporabljali aplikacije in pripomočke, kot so Wine, Lutris in...
HD Remastered Games za Linux, ki prej še niso izdale Linuxa
Mnogi razvijalci iger in založniki pripravijo HD remaster starih iger, da podaljšajo življenjsko dobo franšize, zato oboževalci zahtevajo združljivost...
Kako uporabljati AutoKey za avtomatizacijo iger Linux
AutoKey je namizni pripomoček za avtomatizacijo za Linux in X11, programiran v Python 3, GTK in Qt. Z njegovo funkcijo skriptiranja in MACRO lahko avt...