logo

Python prosi o samouczek

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.



moduł żądań Pythona

Spis treści

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 -

Metoda żądań Pythona

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>

żądania odpowiedzi w Pythonie

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.

uwierzytelnianie żądań Pythona

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 :-

żądania weryfikacji certyfikatu ssl w Pythonie

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:

obiekty sesji-python-requests

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.