The Biblioteka żądań w Pythonie jest jedną z integralnych części Pythona, służącą do wysyłania żądań HTTP do określonego adresu URL. Niezależnie od tego, czy są to interfejsy API REST, czy Web Scraping, należy poznać żądania, aby móc dalej korzystać z tych technologii. Kiedy ktoś wysyła żądanie do URI, zwraca odpowiedź. Żądania w języku Python zapewniają wbudowane funkcje zarządzania zarówno żądaniami, jak i odpowiedziami.
Java analizuje ciąg znaków na int
W tym samouczku omówimy, czym jest Biblioteka żądań Pythona , Jak zrobić POBIERZ żądania poprzez żądania Pythona, obiekty i metody odpowiedzi, uwierzytelnianie przy użyciu żądań Pythona i tak dalej.
Spis treści
- Co to jest moduł żądań Pythona?
- Jak wykonać żądanie GET za pomocą żądań Pythona
- Metody żądania HTTP
- Obiekt odpowiedzi
- Metody reagowania
- Uwierzytelnianie za pomocą żądań Pythona
- Weryfikacja certyfikatu SSL
- Obiekty sesji
- Wniosek
Co to jest moduł żądań Pythona?
- Requests to biblioteka HTTP na licencji Apache2, która umożliwia wysyłanie żądań HTTP/1.1 przy użyciu języka Python.
- Aby bawić się Internetem, wymagane są żądania Pythona. Niezależnie od tego, czy chodzi o korzystanie z interfejsów API, pobieranie całych stron z Facebooka i wiele innych fajnych rzeczy, trzeba będzie wysłać żądanie do adresu URL.
- Żądania odgrywają ważną rolę Interfejsy API REST , I Skrobanie sieci .
- Sprawdź przykładowy skrypt Pythona za pomocą żądań i skrobania sieci – Implementacja Web Scrapingu w Pythonie za pomocą BeautifulSoup
Instalowanie żądań
Żądania instalacji zależą od typu używanego systemu operacyjnego. Podstawowym poleceniem w dowolnym miejscu byłoby otwarcie terminala poleceń i uruchomienie:
pip install requests>
Podstawową metodą instalacji żądań w dowolnym systemie operacyjnym jest pobranie plików podstawowych i ręczna instalacja żądań, a narzędzie Requests jest aktywnie rozwijane w GitHub, gdzie kod jest zawsze dostępny. Dla kodu – odwiedź tutaj . Możesz sklonować repozytorium publiczne:
git clone git://github.com/psf/requests.git>
Gdy już będziesz mieć kopię źródła, możesz osadzić ją we własnym pakiecie Pythona lub łatwo zainstalować w swoich pakietach witryn:
cd requestspip install .>
Aby uzyskać więcej transakcji – Jak zainstalować żądania w Pythonie – dla Windows, Linux, Mac
Składam prośbę
Moduł żądań Pythona ma kilka wbudowanych metod wysyłania żądań HTTP do określonego URI przy użyciu żądań GET, POST, PUT, PATCH lub HEAD. Żądanie HTTP ma na celu albo pobranie danych z określonego identyfikatora URI, albo przesłanie danych na serwer. Działa jako protokół żądanie-odpowiedź pomiędzy klientem a serwerem. Pokażmy, jak wysłać żądanie GET do punktu końcowego. Metoda GET służy do pobrania informacji z danego serwera przy użyciu podanego URI. Metoda GET wysyła zakodowane informacje o użytkowniku dołączone do żądania strony. Strona i zakodowana informacja są oddzielone znakiem „?”. Na przykład:
https://www.google.com/search?q=hello>
Jak wykonać żądanie GET za pomocą żądań Pythona
Moduł żądań Pythona udostępnia wbudowaną metodę o nazwie Dostawać() do wysyłania żądania GET do określonego URI.
Składnia
requests.get(url, params={key: value}, args)>
Przykład :
Spróbujmy wysłać żądanie do interfejsów API githuba w celach przykładowych.
Python3
import> requests> > # Making a GET request> r> => requests.get(> ' https://api.github.com/users/naveenkrnl '> )> > # check status code for response received> # success code - 200> print> (r)> > # print content of request> print> (r.content)> |
>
>
zapisz ten plik jako request.py i uruchom terminal,
python request.py>
Wyjście -
Więcej informacji znajdziesz na stronie – Metoda GET – żądania Pythona
data lokalna
Metody żądania HTTP
metoda | Opis |
---|---|
DOSTAWAĆ | Metoda GET służy do pobrania informacji z danego serwera przy użyciu danego URI. |
POST | Metoda żądania POST żąda, aby serwer WWW zaakceptował dane zawarte w treści komunikatu żądania, najprawdopodobniej w celu ich przechowywania |
UMIEŚCIĆ | Metoda PUT żąda, aby załączona jednostka była przechowywana pod dostarczonym identyfikatorem URI. Jeśli URI odnosi się do już istniejącego zasobu, jest modyfikowany, a jeśli URI nie wskazuje na istniejący zasób, serwer może utworzyć zasób z tym URI. |
USUWAĆ | Metoda DELETE usuwa określony zasób |
GŁOWA | Metoda HEAD prosi o odpowiedź identyczną jak w przypadku żądania GET, ale bez treści odpowiedzi. |
SKRAWEK | Służy do modyfikowania możliwości. Żądanie PATCH musi zawierać jedynie zmiany w zasobie, a nie cały zasób |
Obiekt odpowiedzi
Kiedy ktoś wysyła żądanie do URI, zwraca odpowiedź. Ten obiekt Response w języku Python jest zwracany przez request.method(), a metodą jest get, post, put itp. Response to potężny obiekt z wieloma funkcjami i atrybutami, które pomagają w normalizowaniu danych lub tworzeniu idealnych fragmentów kodu. Na przykład, kod_stanu odpowiedzi zwraca kod statusu z samych nagłówków i można sprawdzić, czy żądanie zostało pomyślnie przetworzone, czy nie. Obiekt odpowiedzi może służyć do sugerowania wielu funkcji, metod i funkcjonalności.
Przykład :
Python3
# import requests module> import> requests> # Making a get request> response> => requests.get(> ' https://api.github.com/ '> )> # print request object> print> (response.url)> # print status code> print> (response.status_code)> |
>
>
Zapisz ten plik jako request.py i uruchom, używając poniższego polecenia
Python request.py>
Kod stanu 200 wskazuje, że żądanie zostało wykonane pomyślnie.
Metody reagowania
metoda | Opis |
---|---|
nagłówki odpowiedzi | respond.headers zwraca słownik nagłówków odpowiedzi. |
kodowanie odpowiedzi | odpowiedź.encoding zwraca kodowanie użyte do dekodowania treści odpowiedzi. |
odpowiedź.upłynęła | respond.elapsed zwraca obiekt timedelta z czasem, jaki upłynął od wysłania żądania do nadejścia odpowiedzi. |
odpowiedź.zamknij() | odpowiedź.close() zamyka połączenie z serwerem. |
odpowiedź.treść | respond.content zwraca treść odpowiedzi w bajtach. |
odpowiedź.pliki cookie | respond.cookies zwraca obiekt CookieJar z plikami cookie odesłanymi z serwera. |
odpowiedź.historia | respond.history zwraca listę obiektów odpowiedzi przechowujących historię żądań (adres URL). |
odpowiedź.is_permanent_redirect | respond.is_permanent_redirect zwraca True, jeśli odpowiedzią jest stały przekierowany adres URL, w przeciwnym razie False. |
odpowiedź.is_przekierowanie | respond.is_redirect zwraca True, jeśli odpowiedź została przekierowana, w przeciwnym razie False. |
odpowiedź.iter_content() | respond.iter_content() iteruje po odpowiedzi.content. |
odpowiedź.json() | odpowiedź.json() zwraca obiekt JSON wyniku (jeśli wynik został zapisany w formacie JSON, w przeciwnym razie zgłasza błąd). |
odpowiedź.url | respond.url zwraca adres URL odpowiedzi. |
odpowiedź.tekst | respond.text zwraca treść odpowiedzi w formacie Unicode. |
kod_stanu odpowiedzi | kod odpowiedzi.status_code zwraca liczbę wskazującą status (200 to OK, 404 to Nie Znaleziono). |
odpowiedź.prośba | respond.request zwraca obiekt żądania, który zażądał tej odpowiedzi. |
odpowiedź.powód | odpowiedź.powód zwraca tekst odpowiadający kodowi stanu. |
odpowiedź.raise_for_status() | respond.raise_for_status() zwraca obiekt HTTPError, jeśli w trakcie procesu wystąpił błąd. |
odpowiedź.ok | respond.ok zwraca True, jeśli kod_stanu jest mniejszy niż 200, w przeciwnym razie False. |
odpowiedź.linki | respond.links zwraca linki nagłówkowe. |
Uwierzytelnianie za pomocą żądań Pythona
Uwierzytelnianie oznacza nadanie użytkownikowi uprawnień dostępu do określonego zasobu. Ponieważ nie każdy może mieć dostęp do danych z każdego adresu URL, wymagałoby to przede wszystkim uwierzytelnienia. Aby osiągnąć to uwierzytelnienie, zazwyczaj dostarcza się dane uwierzytelniające poprzez nagłówek autoryzacji lub niestandardowy nagłówek zdefiniowany przez serwer.
różnica między lisem a wilkiem
Przykład -
Python3
# import requests module> import> requests> from> requests.auth> import> HTTPBasicAuth> # Making a get request> response> => requests.get(> ' https://api.github.com / user, '> ,> > auth> => HTTPBasicAuth(> 'user'> ,> 'pass'> ))> # print request object> print> (response)> |
>
>
Zastąp użytkownika i podaj swoją nazwę użytkownika i hasło. Uwierzytelni żądanie i zwróci odpowiedź 200, w przeciwnym razie zwróci błąd 403.
Więcej informacji znajdziesz na stronie – Uwierzytelnianie za pomocą żądań Pythona
Weryfikacja certyfikatu SSL
Requests weryfikuje certyfikaty SSL dla żądań HTTPS, podobnie jak przeglądarka internetowa. Certyfikaty SSL to małe pliki danych, które cyfrowo wiążą klucz kryptograficzny z danymi organizacji. Często witrynę internetową posiadającą certyfikat SSL określa się mianem witryny bezpiecznej. Domyślnie weryfikacja SSL jest włączona, a Requests wygeneruje błąd SSLError, jeśli nie będzie w stanie zweryfikować certyfikatu.
Wyłącz weryfikację certyfikatu SSL
Spróbujmy uzyskać dostęp do strony internetowej z nieprawidłowym certyfikatem SSL, korzystając z żądań Pythona
Python3
# import requests module> import> requests> # Making a get request> response> => requests.get(> ' https://expired.badssl.com/ '> )> # print request object> print> (response)> |
>
>
metody listy Java
Wyjście :-
Ta witryna nie ma skonfigurowanego protokołu SSL, dlatego zgłasza ten błąd. można również przekazać link do certyfikatu w celu sprawdzenia poprawności, wyłącznie za pośrednictwem żądań Pythona.
Python3
# import requests module> import> requests> # Making a get request> response> => requests.get(> ' https://github.com '> , verify> => '/path/to/certfile'> )> # print request object> print> (response)> |
>
>
Działałoby to w przypadku, gdyby podana ścieżka była poprawna dla certyfikatu SSL dla github.com.
Aby uzyskać więcej informacji, odwiedź- Weryfikacja certyfikatu SSL – żądania Python
Obiekty sesji
Obiekt sesji pozwala zachować określone parametry w żądaniach. Utrzymuje także pliki cookie we wszystkich żądaniach wysyłanych z instancji Session i korzysta z łączenia połączeń urllib3. Jeśli więc do tego samego hosta kierowanych jest kilka żądań, podstawowe połączenie TCP zostanie ponownie wykorzystane, co może skutkować znacznym wzrostem wydajności. Obiekt sesji, wszystkie metody od żądań.
Korzystanie z obiektów sesji
Zilustrujmy użycie obiektów sesji poprzez ustawienie pliku cookie na adres URL, a następnie ponowne wysłanie żądania w celu sprawdzenia, czy plik cookie jest ustawiony.
Python3
# import requests module> import> requests> > # create a session object> s> => requests.Session()> > # make a get request> s.get(> ' https://httpbin.org/cookies/set/sessioncookie/123456789 '> )> > # again make a get request> r> => s.get(> ' https://httpbin.org/cookies '> )> > # check if cookie is still set> print> (r.text)> |
>
katalog w poleceniach systemu Linux
>
Wyjście:
Więcej informacji znajdziesz na stronie – Obiekty sesji – żądania Pythona
Wniosek
Biblioteka żądań języka Python to potężne narzędzie do tworzenia żądań HTTP i interakcji z internetowymi interfejsami API. W tym samouczku omówiliśmy podstawy wysyłania żądań GET i POST, obsługi parametrów i nagłówków oraz zarządzania danymi odpowiedzi. Prostota i intuicyjna konstrukcja biblioteki sprawiają, że jest ona dostępna zarówno dla początkujących, jak i doświadczonych programistów.