logo

Tutorial til Python-anmodninger

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.



python-anmodningsmodul

Indholdsfortegnelse

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 –

python-anmodninger-get-metode

For mere, besøg - GET-metoden – Python-anmodninger

Http-anmodningsmetoder

betinget operator i java
Metode Beskrivelse
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>

svar-python-anmodninger

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.

authenticate-python-requests

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

ssl-certificate-verification-python-requests

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:

session-objects-python-requests

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.