Python obsahuje modul s názvem urllib pro zpracování úkolů souvisejících s jednotným vyhledávačem zdrojů (URL). Tento modul je ve výchozím nastavení nainstalován v Pythonu 3 a načítá adresy URL různých protokolů prostřednictvím urlopen () funkce. Urllib lze použít k mnoha účelům, jako je čtení obsahu webových stránek, vytváření požadavků HTTP a HTTPS, odesílání záhlaví požadavků a načítání záhlaví odpovědí. The urllib modul obsahuje mnoho dalších modulů pro práci s URL, např urllib.žádost, urllib.analyzovat, a urllib.chyba, mezi ostatními. Tento kurz vám ukáže, jak používat modul Urllib v Pythonu.
Příklad 1: Otevírání a čtení adres URL pomocí urllib.žádost
The urllib.žádost modul obsahuje třídy a metody potřebné k otevření a čtení jakékoli adresy URL. Následující skript ukazuje, jak používat urllib.žádost modul k otevření adresy URL a ke čtení obsahu adresy URL. Tady urlopen () metoda se používá k otevření adresy URL, “https: // www.linuxhint.com /.„Je-li adresa URL platná, bude její obsah uložen do pojmenované proměnné objektu Odezva. The číst() metoda Odezva objekt se poté použije ke čtení obsahu adresy URL.
#!/ usr / bin / env python3# Import požadavku modulu urllib
importovat urllib.žádost
# Otevřete konkrétní adresu URL pro čtení pomocí urlopen ()
response = urllib.žádost.urlopen ('https: // www.linuxhint.com / ')
# Vytiskněte data odpovědí adresy URL
print ("Výstup adresy URL je: \ n \ n", odpověď.číst())
Výstup
Po spuštění skriptu se zobrazí následující výstup.
Příklad 2: Analýza a rozebrání adres URL pomocí urllib.analyzovat
The urllib.analyzovat modul se primárně používá k rozdělení nebo spojení různých komponent adresy URL. Následující skript ukazuje různá použití urllib.analyzovat modul. Čtyři funkce urllib.analyzovat použitý v následujícím skriptu zahrnout urlparse, urlunparse, urlsplit, a urlunsplit. The urlparse modul funguje jako urlsplit, a urlunparse modul funguje jako urlunsplit. Mezi těmito funkcemi je pouze jeden rozdíl; to je, urlparse a urlunparse obsahovat další parametr s názvem 'parametry„pro rozdělení a funkci spojování. Zde je adresa URL https: // linuxhint.com / play_sound_python / 'se používá k rozdělení a připojení URL.
#!/ usr / bin / env python3# Importovat parsovací modul urllib
importovat urllib.analyzovat
# Analýza adresy URL pomocí urlparse ()
urlParse = urllib.analyzovat.urlparse ('https: // linuxhint.com / play_sound_python / ')
print ("\ nVýstup adresy URL po analýze: \ n", urlParse)
# Spojení URL pomocí urlunparse ()
urlUnparse = urllib.analyzovat.urlunparse (urlParse)
print ("\ nVstupní výstup analýzy adresy URL: \ n", urlUnparse)
# Analýza adresy URL pomocí urlsplit ()
urlSplit = urllib.analyzovat.urlsplit ('https: // linuxhint.com / play_sound_python / ')
print ("\ nVýstup adresy URL po rozdělení: \ n", urlSplit)
# Spojení URL pomocí urlunsplit ()
urlUnsplit = urllib.analyzovat.urlunsplit (urlSplit)
print ("\ nVýstup pro rozdělení adresy URL: \ n", urlUnsplit)
Výstup
Po spuštění skriptu se zobrazí následující čtyři výstupy.
Příklad 3: Čtení hlavičky odpovědi HTML s urllib.žádost
Následující skript ukazuje, jak lze načíst různé části záhlaví odpovědi adresy URL informace () metoda. The urllib.žádost modul používaný k otevření adresy URL, 'https: // linuxhint.com / python_pause_user_input /,"a informace o záhlaví této adresy URL jsou vytištěny prostřednictvím informace () metoda. Další část tohoto skriptu vám ukáže, jak číst každou část záhlaví zvlášť. Tady Server, datum, a Typ obsahu hodnoty jsou vytištěny samostatně.
#!/ usr / bin / env python3# Import požadavku modulu urllib
importovat urllib.žádost
# Otevřete URL pro čtení
urlResponse = urllib.žádost.urlopen ('https: // linuxhint.com / python_pause_user_input / ')
# Čtení výstupu záhlaví odpovědi URL
tisk (urlResponse.informace ())
# Čtení informací v záhlaví samostatně
print ('Response server =', urlResponse.info () ["Server"])
print ('Datum odpovědi je =', urlResponse.info () ["datum"])
print ('Typ obsahu odpovědi je =', urlResponse.info () ["Content-Type"])
Výstup
Po spuštění skriptu se zobrazí následující výstup.
Příklad 4: Čtení odpovědí URL řádek po řádku
V následujícím skriptu je použita místní adresa URL. Zde je testovací soubor HTML s názvem test.html je vytvořen v místě, var /www / html. Obsah tohoto souboru se čte řádek po řádku přes pro smyčka. The pás() metoda se poté použije k odstranění mezery z obou stran každého řádku. K otestování skriptu můžete použít jakýkoli soubor HTML z místního serveru. Obsah test.html soubor použitý v tomto příkladu je uveden níže.
test.html:
Testovací stránka
#!/ usr / bin / env python3
# Importovat urllib.modul požadavku
importovat urllib.žádost
# Otevřete místní adresu URL ke čtení
response = urllib.žádost.urlopen ('http: // localhost / test.html ')
# Přečtěte si URL z odpovědi
print ('URL:', response.geturl ())
# Přečtěte si text odpovědi po řádcích
print ("\ nČtení obsahu:")
pro linku v odezvě:
tisk (řádek.pás())
Výstup
Po spuštění skriptu se zobrazí následující výstup.
Příklad 5: Zpracování výjimek s urllib.chyba.URLError
Následující skript ukazuje, jak používat URLError v Pythonu přes urllib.chyba modul. Jakoukoli adresu URL lze brát jako vstup od uživatele. Pokud adresa neexistuje, pak an URLError bude vyvolána výjimka a bude vytištěn důvod chyby. Pokud je hodnota adresy URL v neplatném formátu, pak a ValueError bude vyvolána a vytiskne se vlastní chyba.
#!/ usr / bin / env python3# Importujte potřebné moduly
importovat urllib.žádost
importovat urllib.chyba
# zkuste blokovat a otevřete libovolnou adresu URL ke čtení
Snaž se:
url = input ("Zadejte libovolnou adresu URL:")
response = urllib.žádost.urlopen (url)
tisk (odpověď.číst())
# Chyťte chybu URL, která se vygeneruje při otevření jakékoli adresy URL
kromě urllib.chyba.URLError jako e:
print ("Chyba URL:", např.důvod)
# Chytit chybu neplatné adresy URL
kromě ValueError:
tisk („Zadejte platnou adresu URL“)
Výstup
Skript se na následujícím snímku obrazovky provede třikrát. V první iteraci je adresa URL uvedena v neplatném formátu a generuje ValueError. Adresa URL uvedená ve druhé iteraci neexistuje, což generuje chybu URLError. Ve třetí iteraci je uvedena platná adresa URL, takže se vytiskne obsah adresy URL.
Příklad 6: Zpracování výjimek s urllib.chyba.Chyba HTTP
Následující skript ukazuje, jak používat Chyba HTTP v Pythonu přes urllib.chyba modul. An HTMLError generuje se, když daná URL adresa neexistuje.
#!/ usr / bin / env python3# Importujte potřebné moduly
importovat urllib.žádost
importovat urllib.chyba
# Zadejte libovolnou platnou adresu URL
url = input ("Zadejte libovolnou adresu URL:")
# Odeslat požadavek na URL
požadavek = urllib.žádost.Žádost (URL)
Snaž se:
# Zkuste otevřít adresu URL
urllib.žádost.urlopen (žádost)
tisk ("URL existuje")
kromě urllib.chyba.Chyba HTTP jako e:
# Vytiskněte chybový kód a důvod chyby
print ("Kód chyby:% d \ nChyba chyby:% s"% (např.kód, např.důvod))
Výstup
Zde se skript provede dvakrát. První URL adresa přijatá jako vstup existuje a modul vytiskl zprávu. Druhá adresa URL braná jako vstup neexistuje a modul vygeneroval Chyba HTTP.
Závěr
Tento tutoriál pojednával o mnoha důležitých využitích urllib modul pomocí různých příkladů, které čtenářům pomohou poznat funkce tohoto modulu v Pythonu.