Det Anmoder om bibliotek i Python er en af de integrerede dele af Python til at lave HTTP-anmodninger til en specificeret URL. Uanset om det er REST API'er eller Web Scraping, er anmodninger et must at lære for at komme videre med disse teknologier. Når man laver en anmodning til en URI, returnerer den et svar. Python-anmodninger giver indbyggede funktioner til styring af både anmodningen og svaret.
shreya ghoshal
I denne tutorial vil vi udforske Hvad er Python-anmodningsbibliotek , Hvordan laver man GET anmodninger gennem Python-anmodninger, svarobjekter og -metoder, godkendelse ved hjælp af Python-anmodninger og så videre.
Indholdsfortegnelse
- Hvad er Python Requests modul?
- Sådan laver du GET-anmodninger gennem Python-anmodninger
- Http-anmodningsmetoder
- Responsobjekt
- Reaktionsmetoder
- Godkendelse ved hjælp af Python-anmodninger
- SSL-certifikatbekræftelse
- Sessionsobjekter
- Konklusion
Hvad er Python Requests modul?
- Requests er et Apache2-licenseret HTTP-bibliotek, der gør det muligt at sende HTTP/1.1-anmodninger ved hjælp af Python.
- For at spille med web er Python Requests et must. Uanset om det er at ramme API'er, downloade hele facebook-sider og meget mere seje ting, bliver man nødt til at lave en anmodning til URL'en.
- Forespørgsler spiller en stor rolle er at håndtere REST API'er , og Web skrabning .
- Tjek et eksempel på et Python-script ved hjælp af anmodninger og web-skrabning – Implementering af Web Scraping i Python med BeautifulSoup
Installation af anmodninger
Anmodninger om installation afhænger af typen af operativsystem på eis, den grundlæggende kommando hvor som helst ville være at åbne en kommandoterminal og køre,
pip install requests>
Den grundlæggende metode til installation af anmodninger på ethvert operativsystem er at gribe basisfilerne og installere anmodninger manuelt, og Requests udvikles aktivt på GitHub, hvor koden altid er tilgængelig. For kode – besøg her . Du kan enten klone det offentlige lager:
git clone git://github.com/psf/requests.git>
Når du har en kopi af kilden, kan du integrere den i din egen Python-pakke eller nemt installere den i dine webstedspakker:
cd requestspip install .>
For mere checkout – Sådan installeres anmodninger i Python - Til Windows, Linux, Mac
Indgivelse af en anmodning
Python-anmodningsmodulet har flere indbyggede metoder til at lave Http-anmodninger til specificeret URI ved hjælp af GET-, POST-, PUT-, PATCH- eller HEAD-anmodninger. En Http-anmodning er beregnet til enten at hente data fra en specificeret URI eller at pushe data til en server. Det fungerer som en anmodning-svar-protokol mellem en klient og en server. Lad os demonstrere, hvordan man laver en GET-anmodning til et slutpunkt. GET-metoden bruges til at hente information fra den givne server ved hjælp af en given URI. GET-metoden sender den kodede brugerinformation, der er tilføjet sideanmodningen. Siden og den kodede information er adskilt af tegnet '?'. For eksempel:
https://www.google.com/search?q=hello>
Sådan laver du GET-anmodninger gennem Python-anmodninger
Pythons anmodningsmodul giver en indbygget metode kaldet få() for at lave en GET-anmodning til en specificeret URI.
Syntaks
requests.get(url, params={key: value}, args)>
Eksempel:
Lad os prøve at lave en anmodning til githubs API'er for eksempel.
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)> |
>
>
gem denne fil som request.py og gennem terminalkørsel,
python request.py>
Output –
For mere, besøg - GET-metoden – Python-anmodninger
Http-anmodningsmetoder
betinget operator i java
Metode | Beskrivelse |
---|---|
FÅ | GET-metoden bruges til at hente information fra den givne server ved hjælp af en given URI. |
STOLPE | POST-anmodningsmetoden anmoder om, at en webserver accepterer de data, der er indeholdt i brødteksten i anmodningsmeddelelsen, sandsynligvis for at gemme dem |
SÆTTE | PUT-metoden anmoder om, at den vedlagte enhed gemmes under den leverede URI. Hvis URI'en henviser til en allerede eksisterende ressource, ændres den, og hvis URI'en ikke peger på en eksisterende ressource, kan serveren oprette ressourcen med denne URI. |
SLET | Metoden DELETE sletter den angivne ressource |
HOVED | HEAD-metoden beder om et svar, der er identisk med det for en GET-anmodning, men uden svarlegemet. |
LAPPE | Det bruges til at ændre muligheder. PATCH-anmodningen behøver kun at indeholde ændringerne til ressourcen, ikke den komplette ressource |
Responsobjekt
Når man laver en anmodning til en URI, returnerer den et svar. Dette Response-objekt i form af python returneres af requests.method(), hvor metoden er – get, post, put, osv. Response er et kraftfuldt objekt med masser af funktioner og attributter, der hjælper med at normalisere data eller skabe ideelle dele af kode. For eksempel, response.status_kode returnerer statuskoden fra selve overskrifterne, og man kan kontrollere, om anmodningen blev behandlet med succes eller ej. Responsobjekt kan bruges til at antyde mange funktioner, metoder og funktionaliteter.
Eksempel:
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)> |
>
>
Gem denne fil som request.py, og kør med kommandoen nedenfor
Python request.py>
Statuskode 200 angiver, at anmodningen blev foretaget med succes.
Reaktionsmetoder
Metode | Beskrivelse |
---|---|
svar.overskrifter | response.headers returnerer en ordbog med svaroverskrifter. |
respons.kodning | response.encoding returnerer den kodning der bruges til at afkode response.content. |
respons.forløbet | response.elapsed returnerer et timedelta-objekt med den tid, der er forløbet fra afsendelse af anmodningen til ankomsten af svaret. |
response.close() | response.close() lukker forbindelsen til serveren. |
respons.indhold | response.content returnerer indholdet af svaret i bytes. |
response.cookies | response.cookies returnerer et CookieJar-objekt med cookies sendt tilbage fra serveren. |
respons.historie | response.history returnerer en liste over svarobjekter, der indeholder anmodningshistorikken (url). |
response.is_permanent_redirect | response.is_permanent_redirect returnerer True, hvis svaret er den permanente omdirigerede url, ellers False. |
response.is_redirect | response.is_redirect returnerer True, hvis svaret blev omdirigeret, ellers False. |
response.iter_content() | response.iter_content() itererer over response.content. |
response.json() | response.json() returnerer et JSON-objekt af resultatet (hvis resultatet blev skrevet i JSON-format, hvis ikke det giver en fejl). |
response.url | response.url returnerer URL'en for svaret. |
svar.tekst | response.text returnerer indholdet af svaret i unicode. |
response.status_kode | response.status_code returnerer et tal, der angiver status (200 er OK, 404 er ikke fundet). |
svar.anmodning | response.request returnerer anmodningsobjektet, der anmodede om dette svar. |
svar.årsag | response.reason returnerer en tekst, der svarer til statuskoden. |
response.raise_for_status() | response.raise_for_status() returnerer et HTTPError-objekt, hvis der er opstået en fejl under processen. |
svar.ok | response.ok returnerer True, hvis status_code er mindre end 200, ellers False. |
response.links | response.links returnerer header-linkene. |
Godkendelse ved hjælp af Python-anmodninger
Godkendelse refererer til at give en bruger tilladelse til at få adgang til en bestemt ressource. Da alle ikke kan få adgang til data fra hver URL, ville man primært kræve godkendelse. For at opnå denne godkendelse leverer man typisk godkendelsesdata via Autorisationsheader eller en brugerdefineret header defineret af serveren.
Eksempel –
formater datoen i java
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)> |
>
>
Erstat bruger og pass med dit brugernavn og adgangskode. Det vil autentificere anmodningen og returnere et svar 200, ellers vil det returnere fejl 403.
For mere besøg - Godkendelse ved hjælp af Python-anmodninger
SSL-certifikatbekræftelse
Anmodninger verificerer SSL-certifikater for HTTPS-anmodninger, ligesom en webbrowser. SSL-certifikater er små datafiler, der digitalt binder en kryptografisk nøgle til en organisations detaljer. Ofte betegnes en hjemmeside med et SSL-certifikat som sikker hjemmeside. Som standard er SSL-bekræftelse aktiveret, og anmodninger sender en SSLError, hvis det ikke er i stand til at bekræfte certifikatet.
Deaktiver SSL-certifikatbekræftelse
Lad os prøve at få adgang til et websted med et ugyldigt SSL-certifikat ved hjælp af Python-anmodninger
Python3
# import requests module> import> requests> # Making a get request> response> => requests.get(> ' https://expired.badssl.com/ '> )> # print request object> print> (response)> |
>
>
Output:-
Denne hjemmeside har ikke SSL-opsætning, så den rejser denne fejl. man kan også videregive linket til certifikatet til validering kun via python-anmodninger.
streng til heltal i java
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)> |
>
>
Dette ville fungere, hvis den angivne sti er korrekt for SSL-certifikat for github.com.
For mere besøg- SSL-certifikatbekræftelse – Python-anmodninger
Sessionsobjekter
Sessionsobjekt giver mulighed for at bevare visse parametre på tværs af anmodninger. Det bevarer også cookies på tværs af alle anmodninger fra sessionsinstansen og vil bruge urllib3s forbindelsespooling. Så hvis flere anmodninger sendes til den samme vært, vil den underliggende TCP-forbindelse blive genbrugt, hvilket kan resultere i en betydelig ydelsesforøgelse. En session objekter alle metoderne fra anmodninger.
Brug af sessionsobjekter
Lad os illustrere brugen af sessionsobjekter ved at sætte en cookie til en url og derefter lave en anmodning igen for at kontrollere, om der er sat en cookie.
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)> |
>
>
alfabet nummer
Produktion:
For mere, besøg - Sessionsobjekter – Python-anmodninger
Konklusion
Python Request Library er et kraftfuldt værktøj til at lave HTTP-anmodninger og interagere med web-API'er. I denne øvelse dækkede vi det grundlæggende i at sende GET- og POST-anmodninger, håndtering af parametre og overskrifter og håndtering af svardata. Bibliotekets enkelhed og intuitive design gør det tilgængeligt for både begyndere og erfarne udviklere.