Pytonorm

Hur man använder Urllib i Python

Hur man använder Urllib i Python

Python innehåller en modul som heter urllib för hantering av Uniform Resource Locator (URL) -relaterade uppgifter. Den här modulen är installerad i Python 3 som standard och hämtar webbadresser till olika protokoll via urlopen () fungera. Urllib kan användas för många ändamål, som att läsa webbplatsinnehåll, göra HTTP- och HTTPS-förfrågningar, skicka förfrågningsrubriker och hämta svarsrubriker. De urllib Modulen innehåller många andra moduler för att arbeta med webbadresser, till exempel urllib.begäran, urllib.analysera, och urllib.fel, bland andra. Denna handledning visar hur du använder Urllib-modulen i Python.

Exempel 1: Öppna och läsa webbadresser med urllib.begäran

De urllib.begäran Modulen innehåller de klasser och metoder som krävs för att öppna och läsa alla webbadresser. Följande skript visar hur man använder urllib.begäran modul för att öppna en URL och för att läsa innehållet i URL: en. Här, den urlopen () metoden används för att öppna webbadressen, “https: // www.linuxhint.com /.”Om webbadressen är giltig kommer innehållet i webbadressen att lagras i den objektvariabel som heter svar. De läsa() metod för svar objektet används sedan för att läsa innehållet i URL: n.

#!/ usr / bin / env python3
# Importförfrågningsmodul för urllib
importera urllib.begäran
# Öppna den specifika webbadressen för läsning med urlopen ()
svar = urllib.begäran.urlopen ('https: // www.linuxhint.com / ')
# Skriv ut svarsdata för URL: n
skriv ut ("URL: ns utdata är: \ n \ n", svar.läsa())

Produktion

Följande utdata visas efter körning av skriptet.

Exempel 2: Analysera och ta bort webbadresser med urllib.analysera

De urllib.analysera modulen används främst för att dela upp eller sammanfoga de olika komponenterna i en URL. Följande skript visar olika användningar av urllib.analysera modul. De fyra funktionerna i urllib.analysera används i följande skript inkluderar urlparse, urlunparse, urlsplit, och urlunsplit. De urlparse modulen fungerar som urlsplit, och den urlunparse modulen fungerar som urlunsplit. Det finns bara en skillnad mellan dessa funktioner; det är, urlparse och urlunparse innehålla en extra parameter med namnet 'params'för delning och anslutningsfunktionen. Här URL-adressen 'https: // linuxhint.com / play_sound_python / 'används för att dela och ansluta webbadressen.

#!/ usr / bin / env python3
 
# Importera analysmodul av urllib
importera urllib.analysera
 
# Parsing URL med urlparse ()
urlParse = urllib.analysera.urlparse ('https: // linuxhint.com / play_sound_python / ')
skriv ut ("\ nUtdata från URL efter tolkning: \ n", urlParse)
 
# Gå med i URL med urlunparse ()
urlUnparse = urllib.analysera.urlunparse (urlParse)
skriv ut ("\ nDet sammanfogande utdata från parsing URL: \ n", urlUnparse)
 
# Parsing URL med urlsplit ()
urlSplit = urllib.analysera.urlsplit ('https: // linuxhint.com / play_sound_python / ')
skriv ut ("\ nUtdata från URL efter delning: \ n", urlSplit)
 
# Anslutning till URL med urlunsplit ()
urlUnsplit = urllib.analysera.urlunsplit (urlSplit)
skriv ut ("\ nDet sammanfogande utdata för delad URL: \ n", urlUnsplit)

Produktion

Följande fyra utgångar visas efter att man kört skriptet.

Exempel 3: Läser svarsrubrik för HTML med urllib.begäran

Följande skript visar hur de olika delarna av svarsrubriken i URL: n kan hämtas via info() metod. De urllib.begäran modul som används för att öppna webbadressen, 'https: // linuxhint.com / python_pause_user_input /,'och rubrikinformationen för denna URL skrivs ut via info() metod. Nästa del av detta skript visar hur du läser varje del av rubriken separat. Här, den Server, Datum, och Innehållstyp värden skrivs ut separat.

#!/ usr / bin / env python3
# Importförfrågningsmodul för urllib
importera urllib.begäran
# Öppna webbadressen för läsning
urlResponse = urllib.begäran.urlopen ('https: // linuxhint.com / python_pause_user_input / ')
# Läser ut svar på rubriken för webbadressen
skriva ut (urlResponse.info())
# Läser rubrikinformation separat
skriv ut ('Response server =', urlResponse.info () ["Server"])
skriv ut ('Svarsdatum är =', urlResponse.info () ["Date"])
print ('Response content type is =', urlResponse.info () ["Innehållstyp"])

Produktion

Följande utdata visas efter körning av skriptet.

Exempel 4: Läser URL-svar rad för rad

En lokal URL-adress används i följande skript. Här, en testande HTML-fil med namnet testa.html skapas på platsen, var /www / html. Innehållet i den här filen läses rad för rad via  för slinga. De remsa() metoden används sedan för att ta bort utrymmet från båda sidor om varje rad. Du kan använda vilken HTML-fil som helst från den lokala servern för att testa skriptet. Innehållet i testa.html filen som används i detta exempel ges nedan.

testa.html:



Testningssida


#!/ usr / bin / env python3
 
# Importera urllib.begäran modul
importera urllib.begäran
 
# Öppna en lokal webbadress för läsning
svar = urllib.begäran.urlopen ('http: // localhost / test.html ')
 
# Läs URL: en från svaret
skriv ut ('URL:', svar.kanl ())
 
# Läs svarstexten rad för rad
skriv ut ("\ nLäs innehåll:")
för linje som svar:
skriva ut (rad.remsa())

Produktion

Följande utdata visas efter körning av skriptet.

Exempel 5: Undantagshantering med urllib.fel.FEL

Följande skript visar hur du använder FEL i Python via urllib.fel modul. Alla webbadresser kan tas som en inmatning från användaren. Om adressen inte finns, då en FEL undantaget kommer att tas upp och orsaken till felet skrivs ut. Om webbadressens värde är i ogiltigt format, då a ValueError kommer att höjas och det anpassade felet skrivs ut.

#!/ usr / bin / env python3
 
# Importera nödvändiga moduler
importera urllib.begäran
importera urllib.fel
 
# försök blockera för att öppna en webbadress för läsning
Prova:
url = input ("Ange vilken URL-adress som helst:")
svar = urllib.begäran.urlopen (url)
skriva ut (svar.läsa())
 
# Fånga webbadressfelet som genereras när du öppnar en webbadress
utom urllib.fel.FEL som e:
skriv ut ("URL-fel:", e.anledning)
# Fånga det ogiltiga URL-felet
utom ValueError:
skriv ut ("Ange en giltig URL-adress")

Produktion

Skriptet körs tre gånger i följande skärmdump. I den första iterationen anges URL-adressen i ogiltigt format och genererar en ValueError. URL-adressen i den andra iterationen finns inte och genererar en URLError. En giltig URL-adress anges i den tredje iterationen, och så skrivs URL: ns innehåll ut.

Exempel 6: Undantagshantering med urllib.fel.HTTPError

Följande skript visar hur du använder HTTPError i Python via urllib.fel modul. Ett HTMLError genereras när den angivna URL-adressen inte finns.

#!/ usr / bin / env python3
# Importera nödvändiga moduler
importera urllib.begäran
importera urllib.fel
 
# Ta in vilken valfri URL som helst
url = input ("Ange vilken URL-adress som helst:")
# Skicka begäran om webbadressen
begäran = urllib.begäran.Begäran (url)
 
Prova:
# Försök att öppna webbadressen
urllib.begäran.urlopen (begäran)
skriva ut ("URL finns")
utom urllib.fel.HTTPError som e:
# Skriv ut felkoden och orsaken till felet
skriv ut ("Felkod:% d \ nFel orsak:% s"% (e.kod, e.anledning))

Produktion

Här körs manuset två gånger. Den första URL-adressen som togs när ingången existerar och modulen har skrivit ut ett meddelande. Den andra URL-adressen som tas som ingången inte finns och modulen har genererat HTTPError.

Slutsats

Denna handledning diskuterade många viktiga användningsområden för urllib modul genom att använda olika exempel för att hjälpa läsarna att känna till funktionerna för denna modul i Python.

Mus Så här vänder du mus- och styrplattans rullningsriktning i Windows 10
Så här vänder du mus- och styrplattans rullningsriktning i Windows 10
Mus och Pekplattas gör inte bara datoranvändning lättare men effektivare och mindre tidskrävande. Vi kan inte föreställa oss ett liv utan dessa enhete...
Mus Så här ändrar du muspekare och markörstorlek, färg och schema på Windows 10
Så här ändrar du muspekare och markörstorlek, färg och schema på Windows 10
Muspekaren och markören i Windows 10 är mycket viktiga aspekter av operativsystemet. Detta kan också sägas för andra operativsystem, så i sanning är d...
Gratis och öppen källkodsmotorer för utveckling av Linux-spel
Den här artikeln kommer att täcka en lista över gratis motorer med öppen källkod som kan användas för att utveckla 2D- och 3D-spel på Linux. Det finns...