Jak używać urllib w Python

Jak używać urllib w Python

Python zawiera moduł o nazwie urllib Do obsługi jednolitego lokalizatora zasobów (URL) zadań związanych z. Ten moduł jest domyślnie instalowany w Python 3, a pobiera adresy URL różnych protokołów za pośrednictwem urlopen () funkcjonować. Urllib może być używany do wielu celów, takich jak czytanie treści witryny, składanie żądań HTTP i HTTPS, wysyłanie nagłówków żądań i pobieranie nagłówków odpowiedzi. urllib Moduł zawiera wiele innych modułów do pracy z adresami URL, takimi jak urllib.wniosek, urllib.analizować, I urllib.błąd, pośród innych. Ten samouczek pokaże, jak używać modułu urllib w Python.

Przykład 1: Otwarcie i czytanie adresów URL z urllib.wniosek

urllib.wniosek Moduł zawiera klasy i metody wymagane do otwarcia i odczytania dowolnego adresu URL. Poniższy skrypt pokazuje, jak używać urllib.wniosek moduł do otwarcia adresu URL i odczytania zawartości adresu URL. Tutaj urlopen () Metoda jest stosowana do otwarcia adresu URL „https: // www.Linuxhint.com/.”Jeśli adres URL jest prawidłowy, zawartość adresu URL będzie przechowywana w wymienionej zmiennej obiektu odpowiedź. Czytać() Metoda odpowiedź Obiekt jest następnie używany do odczytania zawartości adresu URL.

#!/usr/bin/env python3
# Importuj moduł żądania urllib
importować urllib.wniosek
# Otwórz określony adres URL do odczytu za pomocą urlopen ()
Odpowiedź = urllib.wniosek.urlopen ('https: // www.Linuxhint.com/')
# Wydrukuj dane odpowiedzi URL
Drukuj („Wyjście URL to: \ n \ n”, odpowiedź.Czytać())

Wyjście

Następujące dane wyjściowe pojawią się po uruchomieniu skryptu.

Przykład 2: Parsowanie i niezbędne adresy URL z urllib.analizować

urllib.analizować Moduł służy przede wszystkim do podziału lub połączenia różnych elementów adresu URL. Poniższy skrypt pokazuje różne zastosowania urllib.analizować moduł. Cztery funkcje urllib.analizować używane w następującym skrypcie obejmują Urlparse, Urlunparse, URLSPLIT, I URLUNSPLIT. Urlparse Moduł działa jak URLSPLIT, i Urlunparse Moduł działa jak URLUNSPLIT. Istnieje tylko jedna różnica między tymi funkcjami; to jest, Urlparse I Urlunparse zawierać dodatkowy parametr o nazwieParams„Do podziału i funkcji łączenia. Tutaj, adres URL „https: // linuxhint.com/play_sound_python/'służy do dzielenia i łączenia adresu URL.

#!/usr/bin/env python3
# Importuj moduł parse urllib
importować urllib.analizować
# Parsowanie adresu URL za pomocą urlparse ()
urlParse = urllib.analizować.urlParse ('https: // linuxhint.com/play_sound_python/')
Drukuj („\ n wyjście URL po parsingu: \ n”, urlparse)
# Dołączenie do adresu URL za pomocą urlunparse ()
urlunparse = urllib.analizować.Urlunparse (urlParse)
Drukuj („\ n Dane wyjściowe parsowania URL: \ n”, urlunparse)
# Parsowanie adresu URL za pomocą urlsplit ()
urlsplit = urllib.analizować.urlsplit ('https: // linuxhint.com/play_sound_python/')
Drukuj („\ n Dane wyjściowe URL po podzieleniu: \ n”, urlsplit)
# Dołączanie do adresu URL za pomocą urlunsplit ()
urlunsplit = urllib.analizować.URLUNSPLIT (URLSPLIT)
Drukuj („\ n Dane wyjściowe podziału URL: \ n”, urlunsplit)

Wyjście

Po uruchomieniu skryptu pojawią się następujące cztery wyjścia.

Przykład 3: Nagłówek odpowiedzi odczytu HTML z urllib.wniosek

Poniższy skrypt pokazuje, w jaki sposób różne części nagłówka odpowiedzi adresu URL można pobrać za pomocą informacje () metoda. urllib.wniosek moduł używany do otwarcia adresu URL 'https: // linuxhint.com/python_pause_user_input/,„A informacje nagłówka tego adresu URL są drukowane przez informacje () metoda. Następna część tego skryptu pokaże, jak odczytać każdą część nagłówka osobno. Tutaj serwer, Data, I Typ zawartości Wartości są drukowane osobno.

#!/usr/bin/env python3
# Importuj moduł żądania urllib
importować urllib.wniosek
# Otwórz adres URL do czytania
urlResponse = urllib.wniosek.urlopen ('https: // linuxhint.com/python_pause_user_input/')
# Odczyt wyjścia nagłówka odpowiedzi URL
Drukuj (urlresponse.info ())
# Odczytanie informacji nagłówka osobno
print ('response server =', urlResponse.info () [„serwer”])
print („Data odpowiedzi to =”, urlresponse.info () [„data”])
print („Typ zawartości odpowiedzi is =”, urlresponse.info () [„Content-Type”])

Wyjście

Następujące dane wyjściowe pojawią się po uruchomieniu skryptu.

Przykład 4: Czytanie odpowiedzi URL wiersz po wierszu

Lokalny adres URL jest używany w następującym skrypcie. Tutaj, testujący plik HTML o nazwie test.html jest tworzony w lokalizacji, var/www/html. Zawartość tego pliku jest odczytana linia według linii za pośrednictwem Do pętla. rozebrać się() Następnie stosuje się metodę do usunięcia przestrzeni z obu stron każdej linii. Możesz użyć dowolnego pliku HTML z serwera lokalnego, aby przetestować skrypt. Treść test.html Plik używany w tym przykładzie podano poniżej.

test.HTML:



Strona testowa


#!/usr/bin/env python3
# Importuj urllib.Moduł żądania
importować urllib.wniosek
# Otwórz lokalny adres URL do czytania
Odpowiedź = urllib.wniosek.urlopen ('http: // localhost/test.html ')
# Przeczytaj adres URL z odpowiedzi
Drukuj („URL:”, odpowiedź.geturl ())
# Przeczytaj wiersz tekstu odpowiedzi według wiersza
Drukuj („\ nreading treści:”)
dla linii w odpowiedzi:
Drukuj (linia.rozebrać się())

Wyjście

Następujące dane wyjściowe pojawią się po uruchomieniu skryptu.

Przykład 5: Obsługa wyjątków z urllib.błąd.URLERROR

Poniższy skrypt pokazuje, jak używać URLERROR w Pythonie przez urllib.błąd moduł. Każdy adres URL może być traktowany jako dane wejściowe od użytkownika. Jeśli adres nie istnieje, to URLERROR Wyjątek zostanie podniesiony, a przyczyna błędu będzie wydrukować. Jeśli wartość adresu URL jest w nieprawidłowym formacie, to a ValueerRor zostanie podniesiony, a niestandardowy błąd wydrukuje.

#!/usr/bin/env python3
# Zaimportuj niezbędne moduły
importować urllib.wniosek
importować urllib.błąd
# Wypróbuj blok, aby otworzyć dowolny adres URL do czytania
próbować:
URL = wejście („Wprowadź dowolny adres URL:”)
Odpowiedź = urllib.wniosek.URLOPEN (URL)
Drukuj (odpowiedź.Czytać())
# Złap błąd URL, który wygeneruje podczas otwierania dowolnego adresu URL
Z wyjątkiem urllib.błąd.URLERROR jako e:
Drukuj („Błąd URL:”, E.powód)
# Złap nieprawidłowy błąd URL
Z wyjątkiem ValueerRor:
wydrukuj („Wprowadź prawidłowy adres URL”)

Wyjście

Skrypt jest wykonywany trzykrotnie w poniższym zrzucie ekranu. W pierwszej iteracji adres URL jest podawany w nieprawidłowym formacie, generując ValueerRor. Adres URL podany w drugiej iteracji nie istnieje, generując URLERROR. Ważny adres URL jest podany w trzeciej iteracji, a zatem treść adresu URL jest drukowana.

Przykład 6: Obsługa wyjątków za pomocą urllib.błąd.Błąd HTTP

Poniższy skrypt pokazuje, jak używać Błąd HTTP w Pythonie przez urllib.błąd moduł. Jakiś HtmLerror generuje, gdy podany adres URL nie istnieje.

#!/usr/bin/env python3
# Zaimportuj niezbędne moduły
importować urllib.wniosek
importować urllib.błąd
# Wprowadź dowolny prawidłowy adres URL
URL = wejście („Wprowadź dowolny adres URL:”)
# Wyślij prośbę o adres URL
żądanie = urllib.wniosek.Żądanie (URL)
próbować:
# Spróbuj otworzyć adres URL
urllib.wniosek.urlopen (żądanie)
druk („URL istnieje”)
Z wyjątkiem urllib.błąd.Httperror jako e:
# Wydrukuj kod błędu i powód błędu
Drukuj („Kod błędu:%d \ nerror powód:%s”%(e.Kod, e.powód))

Wyjście

Tutaj skrypt jest wykonywany dwa razy. Pierwszy adres URL podjęty w miarę wejścia, a moduł wydrukował wiadomość. Drugi adres URL wzięty jako wejście nie istnieje, a moduł wygenerował Błąd HTTP.

Wniosek

W tym samouczku omówiono wiele ważnych zastosowań urllib Moduł za pomocą różnych przykładów, aby pomóc czytelnikom poznać funkcje tego modułu w Python.