The Solicită biblioteca în Python este una dintre părțile integrante ale Python pentru a face cereri HTTP către o adresă URL specificată. Fie că este vorba despre API-uri REST sau Web Scraping, solicitările sunt o necesitate de învățat pentru a continua cu aceste tehnologii. Când cineva face o cerere către un URI, acesta returnează un răspuns. Cererile Python oferă funcționalități încorporate pentru gestionarea atât a cererii, cât și a răspunsului.
cum să selectați coloanele din tabele diferite în sql
În acest tutorial, vom explora Ce este Biblioteca de solicitări Python , Modul de a face solicitări GET prin solicitări Python, obiecte și metode de răspuns, autentificare folosind solicitări Python și așa mai departe.
Cuprins
- Ce este modulul Python Requests?
- Cum se face o solicitare GET prin Python Requests
- Metode de solicitare HTTP
- Obiect de răspuns
- Metode de răspuns
- Autentificare folosind cereri Python
- Verificare certificat SSL
- Obiecte de sesiune
- Concluzie
Ce este modulul Python Requests?
- Requests este o bibliotecă HTTP cu licență Apache2, care permite trimiterea de solicitări HTTP/1.1 folosind Python.
- Pentru a juca cu web, Python Requests este obligatoriu. Fie că este vorba de accesarea API-urilor, descărcarea întregii pagini de Facebook și multe altele interesante, va trebui să faceți o solicitare la adresa URL.
- Cererile joacă un rol major cu care se confruntă API-urile REST , și Web Scraping .
- Verificați un exemplu de script Python utilizând solicitări și Web Scraping - Implementarea Web Scraping în Python cu BeautifulSoup
Cereri de instalare
Instalarea solicitărilor depinde de tipul de sistem de operare pe care îl folosește, comanda de bază oriunde ar fi să deschideți un terminal de comandă și să rulați,
pip install requests>
Metoda de bază pentru instalarea solicitărilor pe orice sistem de operare este să luați fișierele de bază și să instalați cererile manual, iar Requests este dezvoltat în mod activ pe GitHub, unde codul este întotdeauna disponibil. Pentru cod - vizitați aici . Puteți fie să clonați depozitul public:
git clone git://github.com/psf/requests.git>
Odată ce aveți o copie a sursei, o puteți încorpora în propriul pachet Python sau o puteți instala cu ușurință în pachetele dvs. de site:
cd requestspip install .>
Pentru mai multe comenzi - Cum se instalează cereri în Python – Pentru Windows, Linux, Mac
Efectuarea unei cereri
Modulul de solicitări Python are mai multe metode încorporate pentru a face solicitări Http către URI-ul specificat folosind cereri GET, POST, PUT, PATCH sau HEAD. O solicitare Http este menită fie să preia date de la un URI specificat, fie să împingă date către un server. Funcționează ca un protocol cerere-răspuns între un client și un server. Să demonstrăm cum să faceți o solicitare GET către un punct final. Metoda GET este folosită pentru a prelua informații de la serverul dat folosind un URI dat. Metoda GET trimite informațiile codificate ale utilizatorului atașate la cererea de pagină. Pagina și informațiile codificate sunt separate prin caracterul „?”. De exemplu:
https://www.google.com/search?q=hello>
Cum se face o solicitare GET prin Python Requests
Modulul de solicitări al lui Python oferă o metodă încorporată numită obține() pentru a face o cerere GET către un URI specificat.
Sintaxă
requests.get(url, params={key: value}, args)>
Exemplu:
Să încercăm să facem o solicitare către API-urile github, în scopuri de exemplu.
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)> |
>
>
salvați acest fișier ca request.py și prin rularea terminalului,
python request.py>
Ieșire -
Pentru mai multe, vizitați - Metoda GET – solicitări Python
Metode de solicitare HTTP
Metodă | Descriere |
---|---|
OBȚINE | Metoda GET este folosită pentru a prelua informații de la serverul dat folosind un URI dat. |
POST | Metoda de solicitare POST solicită ca un server web să accepte datele incluse în corpul mesajului de solicitare, cel mai probabil pentru stocarea acestuia |
A PUNE | Metoda PUT solicită ca entitatea inclusă să fie stocată sub URI-ul furnizat. Dacă URI-ul se referă la o resursă deja existentă, acesta este modificat și dacă URI-ul nu indică o resursă existentă, atunci serverul poate crea resursa cu acel URI. |
ȘTERGE | Metoda DELETE șterge resursa specificată |
CAP | Metoda HEAD cere un răspuns identic cu cel al unei cereri GET, dar fără corpul răspunsului. |
PLASTURE | Este folosit pentru modificarea capabilităților. Solicitarea PATCH trebuie să conțină doar modificările aduse resursei, nu resursa completă |
Obiect de răspuns
Când cineva face o cerere către un URI, acesta returnează un răspuns. Acest obiect Response în termeni de python este returnat de requests.method(), metoda fiind – get, post, put etc. Response este un obiect puternic cu o mulțime de funcții și atribute care ajută la normalizarea datelor sau la crearea unor porțiuni ideale de cod. De exemplu, răspuns.cod_stare returnează codul de stare din anteturile în sine și se poate verifica dacă cererea a fost procesată cu succes sau nu. Obiectul răspuns poate fi folosit pentru a implica o mulțime de caracteristici, metode și funcționalități.
Exemplu:
Python3
java long la int
# 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)> |
>
>
Salvați acest fișier ca request.py și rulați folosind comanda de mai jos
Python request.py>
Codul de stare 200 indică faptul că cererea a fost făcută cu succes.
Metode de răspuns
Metodă | Descriere |
---|---|
răspuns.anteturi | response.headers returnează un dicționar de anteturi de răspuns. |
răspuns.codificare | response.encoding returnează codificarea folosită pentru a decoda răspunsul.conținut. |
răspuns.a trecut | response.elapsed returnează un obiect timedelta cu timpul scurs de la trimiterea cererii până la sosirea răspunsului. |
răspuns.închidere() | response.close() închide conexiunea la server. |
răspuns.conţinut | response.content returnează conținutul răspunsului, în octeți. |
răspuns.cookie-uri | response.cookies returnează un obiect CookieJar cu cookie-urile trimise înapoi de la server. |
răspuns.istorie | response.history returnează o listă de obiecte de răspuns care dețin istoricul cererii (url). |
răspunsul.este_redirecționare_permanentă | response.is_permanent_redirect returnează True dacă răspunsul este adresa URL redirecționată permanentă, în caz contrar False. |
răspuns.este_redirecționare | response.is_redirect returnează True dacă răspunsul a fost redirecționat, în caz contrar False. |
response.iter_content() | response.iter_content() iterează peste răspunsul.content. |
response.json() | response.json() returnează un obiect JSON al rezultatului (dacă rezultatul a fost scris în format JSON, dacă nu, ridică o eroare). |
răspuns.url | response.url returnează adresa URL a răspunsului. |
răspuns.text | response.text returnează conținutul răspunsului, în unicode. |
răspuns.cod_stare | response.status_code returnează un număr care indică starea (200 este OK, 404 nu este găsit). |
răspuns.cerere | response.request returnează obiectul de solicitare care a solicitat acest răspuns. |
răspuns.motiv | response.reason returnează un text corespunzător codului de stare. |
response.raise_for_status() | response.raise_for_status() returnează un obiect HTTPError dacă a apărut o eroare în timpul procesului. |
răspuns.ok | response.ok returnează True dacă status_code este mai mic de 200, în caz contrar False. |
răspuns.linkuri | response.links returnează linkurile antet. |
Autentificare folosind cereri Python
Autentificarea se referă la acordarea permisiunilor unui utilizator de a accesa o anumită resursă. Deoarece, oricine nu poate avea acces la date de la fiecare URL, ar fi nevoie în primul rând de autentificare. Pentru a realiza această autentificare, de obicei se furnizează date de autentificare prin antetul de autorizare sau un antet personalizat definit de server.
Exemplu –
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)> |
terminal kali linux
>
>
Înlocuiți utilizatorul și treceți cu numele dvs. de utilizator și parola. Acesta va autentifica cererea și va returna un răspuns 200, altfel va returna eroarea 403.
Pentru mai multe vizite - Autentificare folosind cereri Python
Verificare certificat SSL
Requests verifică certificatele SSL pentru solicitările HTTPS, la fel ca un browser web. Certificatele SSL sunt fișiere de date mici care leagă digital o cheie criptografică la detaliile unei organizații. Adesea, un site web cu un certificat SSL este numit site securizat. În mod implicit, verificarea SSL este activată, iar Requests va genera o eroare SSLE dacă nu poate verifica certificatul.
Dezactivați verificarea certificatului SSL
Să încercăm să accesăm un site web cu un certificat SSL nevalid, folosind solicitări Python
Python3
# import requests module> import> requests> # Making a get request> response> => requests.get(> ' https://expired.badssl.com/ '> )> # print request object> print> (response)> |
>
>
Ieșire:-
Acest site web nu are configurație SSL, așa că ridică această eroare. se poate transmite și linkul către certificat pentru validare numai prin solicitări Python.
Freddie Mercury născut
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)> |
>
>
Acest lucru ar funcționa în cazul în care calea furnizată este corectă pentru certificatul SSL pentru github.com.
Pentru mai multe vizita- Verificare certificat SSL – solicitări Python
Obiecte de sesiune
Obiectul de sesiune permite să persistă anumiți parametri între solicitări. De asemenea, persistă cookie-uri în toate solicitările făcute de la instanța Session și va folosi gruparea de conexiuni a urllib3. Deci, dacă se fac mai multe solicitări către aceeași gazdă, conexiunea TCP de bază va fi reutilizată, ceea ce poate duce la o creștere semnificativă a performanței. Un obiect de sesiune toate metodele de la solicitări.
Utilizarea obiectelor de sesiune
Să ilustrăm utilizarea obiectelor de sesiune setând un cookie la o adresă URL și apoi făcând din nou o solicitare pentru a verifica dacă cookie-ul este setat.
Python3
shilpa Shetty
# 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)> |
>
>
Ieșire:
Pentru mai multe, vizitați - Obiecte de sesiune – solicitări Python
Concluzie
Python Request Library este un instrument puternic pentru a face cereri HTTP și a interacționa cu API-urile web. În acest tutorial, am acoperit elementele de bază ale trimiterii cererilor GET și POST, gestionarea parametrilor și antetelor și gestionarea datelor de răspuns. Simplitatea bibliotecii și designul intuitiv o fac accesibilă atât pentru începători, cât și pentru dezvoltatorii experimentați.