logo

Vadnica za zahteve Python

The Knjižnica zahtev v Pythonu je eden od sestavnih delov Pythona za pošiljanje zahtev HTTP na določen URL. Ne glede na to, ali gre za API-je REST ali spletno strganje, se je zahtev treba naučiti, če želite nadaljevati s temi tehnologijami. Ko podate zahtevo za URI, ta vrne odgovor. Zahteve Python nudijo vgrajene funkcije za upravljanje zahtev in odgovorov.

kako prekličeš izbiro v gimp

V tej vadnici bomo raziskali Kaj je Knjižnica zahtev Python , Kako narediti GET zahteve prek zahtev Python, objektov in metod odziva, avtentikacije z zahtevami Python itd.



python-requests-module

Kazalo

Kaj je modul Python Requests?

  • Requests je knjižnica HTTP z licenco Apache2, ki omogoča pošiljanje zahtev HTTP/1.1 z uporabo Pythona.
  • Za igranje s spletom so obvezne Python Requests. Ne glede na to, ali gre za dostop do API-jev, prenos celotnih strani s Facebooka in še mnogo drugih zanimivih stvari, boste morali poslati zahtevo URL-ju.
  • Zahteve igrajo pomembno vlogo pri obravnavanju API-ji REST , in Spletno strganje .
  • Oglejte si primer skripta Python z uporabo zahtev in spletnega strganja – Implementacija spletnega strganja v Pythonu z BeautifulSoup

Namestitev zahtev

Zahteva za namestitev je odvisna od vrste operacijskega sistema pri uporabi eis, osnovni ukaz kjer koli bi bil odpreti ukazni terminal in zagnati,



pip install requests>

Osnovna metoda za namestitev zahtev v katerem koli operacijskem sistemu je, da zgrabite osnovne datoteke in ročno namestite zahteve, Zahteve pa se aktivno razvijajo na GitHubu, kjer je koda vedno na voljo. Za kodo – obisk tukaj . Javno skladišče lahko bodisi klonirate:

git clone git://github.com/psf/requests.git>

Ko imate kopijo vira, jo lahko vdelate v svoj paket Python ali preprosto namestite v svoje pakete spletnega mesta:

cd requestspip install   .>

Za več blagajn – Kako namestiti zahteve v Python – Za windows, linux, mac



Izdelava zahteve

Modul za zahteve Python ima več vgrajenih metod za izdelavo zahtev Http za določen URI z uporabo zahtev GET, POST, PUT, PATCH ali HEAD. Zahteva Http je namenjena pridobivanju podatkov iz določenega URI-ja ali potiskanju podatkov na strežnik. Deluje kot protokol zahteva-odgovor med odjemalcem in strežnikom. Pokažimo, kako narediti zahtevo GET do končne točke. Metoda GET se uporablja za pridobivanje informacij iz danega strežnika z uporabo danega URI-ja. Metoda GET pošlje kodirane podatke o uporabniku, ki so dodani zahtevi strani. Stran in kodirane informacije so ločene z znakom ‘?’. Na primer:

https://www.google.com/search?q=hello>

Kako narediti zahtevo GET prek zahtev Python

Pythonov modul za zahteve ponuja vgrajeno metodo, imenovano dobiti () za izdelavo zahteve GET za določen URI.

Sintaksa

requests.get(url, params={key: value}, args)>

Primer:

Poskusimo narediti zahtevo API-jem github za primere.

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

>

>

shranite to datoteko kot request.py in prek terminala zaženite,

python request.py>

Izhod –

python-requests-get-method

Za več obiščite – Metoda GET – zahteve Python

Metode zahteve Http

Metoda Opis
DOBITI Metoda GET se uporablja za pridobivanje informacij iz danega strežnika z uporabo danega URI-ja.
OBJAVI Metoda zahteve POST zahteva, da spletni strežnik sprejme podatke, vključene v telo sporočila zahteve, najverjetneje za njihovo shranjevanje
POSTAVITE Metoda PUT zahteva, da se priložena entiteta shrani pod podanim URI. Če se URI nanaša na že obstoječi vir, se spremeni in če URI ne kaže na obstoječi vir, lahko strežnik ustvari vir s tem URI-jem.
IZBRIŠI Metoda DELETE izbriše navedeni vir
GLAVA Metoda HEAD zahteva odgovor, ki je enak odgovoru zahteve GET, vendar brez telesa odgovora.
POKRIV Uporablja se za zmožnosti spreminjanja. Zahteva PATCH mora vsebovati le spremembe vira, ne celotnega vira

Objekt odziva

Ko podate zahtevo za URI, ta vrne odgovor. Ta objekt Response v smislu pythona vrne requests.method(), pri čemer je metoda – get, post, put itd. Response je močan objekt z veliko funkcijami in atributi, ki pomagajo pri normalizaciji podatkov ali ustvarjanju idealnih delov kode. na primer response.status_code vrne statusno kodo iz samih glav in lahko preverite, ali je bila zahteva obdelana uspešno ali ne. Odzivni objekt je mogoče uporabiti za impliciranje številnih funkcij, metod in funkcij.

Primer:

Python3


c++ razdelitev nizov



# 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)>

>

>

Shranite to datoteko kot request.py in jo zaženite s spodnjim ukazom

Python request.py>

odziv-python-zahteve

Statusna koda 200 pomeni, da je bila zahteva uspešna.

Odzivne metode

Metoda Opis
odgovor.glave response.headers vrne slovar glav odgovorov.
odgovor.kodiranje response.encoding vrne kodiranje, uporabljeno za dekodiranje response.content.
odziv.preteklo response.elapsed vrne objekt timedelta s časom, ki je pretekel od pošiljanja zahteve do prejema odgovora.
response.close() response.close() zapre povezavo s strežnikom.
odgovor.vsebina response.content vrne vsebino odgovora v bajtih.
odgovor.piškotki response.cookies vrne objekt CookieJar s piškotki, poslanimi nazaj s strežnika.
odziv.zgodovina response.history vrne seznam odgovornih objektov, ki vsebujejo zgodovino zahtev (url).
response.is_permanent_redirect response.is_permanent_redirect vrne True, če je odgovor trajni preusmerjeni url, sicer pa False.
response.is_redirect response.is_redirect vrne True, če je bil odgovor preusmerjen, drugače pa False.
response.iter_content() response.iter_content() ponovi čez response.content.
response.json() response.json() vrne objekt JSON rezultata (če je bil rezultat zapisan v formatu JSON, če ni, sproži napako).
response.url response.url vrne URL odgovora.
odziv.besedilo response.text vrne vsebino odgovora v unicode.
response.status_code response.status_code vrne številko, ki označuje stanje (200 je v redu, 404 ni najdeno).
odgovor.prošnja response.request vrne objekt zahteve, ki je zahteval ta odgovor.
odgovor.razlog response.reason vrne besedilo, ki ustreza statusni kodi.
response.raise_for_status() response.raise_for_status() vrne objekt HTTPError, če je med postopkom prišlo do napake.
odgovor.ok response.ok vrne True, če je status_code manjša od 200, sicer False.
odziv.povezave response.links vrne povezave glave.

Avtentikacija z uporabo Python Requests

Avtentikacija se nanaša na dajanje dovoljenj uporabniku za dostop do določenega vira. Ker vsakomur ni mogoče dovoliti dostopa do podatkov z vsakega URL-ja, bi zahtevali predvsem avtentikacijo. Da bi dosegli to avtentikacijo, običajno posredujemo podatke za avtentikacijo prek glave avtorizacije ali glave po meri, ki jo določi strežnik.

Primer –

Python3




razširitvena datoteka java

# 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)>

>

>

Zamenjajte uporabnika in prehod s svojim uporabniškim imenom in geslom. Preveril bo pristnost zahteve in vrnil odgovor 200 ali pa bo vrnil napako 403.

authenticate-python-requests

Za več obiskov – Avtentikacija z uporabo zahtev Python

Preverjanje SSL certifikata

Requests preverja potrdila SSL za zahteve HTTPS, tako kot spletni brskalnik. Potrdila SSL so majhne podatkovne datoteke, ki digitalno vežejo kriptografski ključ na podrobnosti organizacije. Pogosto je spletno mesto s certifikatom SSL označeno kot varno spletno mesto. Privzeto je preverjanje SSL omogočeno in Zahteve bodo vrgle SSLError, če ne morejo preveriti potrdila.

Onemogoči preverjanje potrdila SSL

Poskusimo z zahtevami Python dostopati do spletne strani z neveljavnim SSL certifikatom

Python3




# import requests module> import> requests> # Making a get request> response>=> requests.get(>' https://expired.badssl.com/ '>)> # print request object> print>(response)>

kako razvrstiti arraylist v Javi
>

>

Izhod: -

ssl-certificate-verification-python-requests

To spletno mesto nima nastavitve SSL, zato sproži to napako. lahko tudi posredujete povezavo do potrdila za preverjanje samo prek zahtev python.

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

>

>

To bi delovalo, če je podana pot pravilna za potrdilo SSL za github.com.

Za več obiskov - Preverjanje potrdila SSL – zahteve Python

Objekti seje

Objekt seje omogoča ohranjanje določenih parametrov med zahtevami. Prav tako ohranja piškotke v vseh zahtevah iz primerka Session in bo uporabljal zbiranje povezav urllib3. Torej, če je več zahtev poslanih istemu gostitelju, bo osnovna povezava TCP ponovno uporabljena, kar lahko povzroči znatno povečanje zmogljivosti. Objekt seje vse metode od zahtev.

kaj je androidovo velikonočno jajce

Uporaba objektov seje

Ponazorimo uporabo objektov seje z nastavitvijo piškotka na url in nato ponovno zahtevo za preverjanje, ali je piškotek nastavljen.

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

>

>

Izhod:

session-objects-python-requests

Za več obiščite – Objekti seje – zahteve Python

Zaključek

Python Request Library je zmogljivo orodje za izdelavo zahtev HTTP in interakcijo s spletnimi API-ji. V tej vadnici smo obravnavali osnove pošiljanja zahtev GET in POST, ravnanje s parametri in glavami ter upravljanje podatkov o odzivih. Zaradi preprostosti in intuitivne zasnove knjižnice je dostopna tako začetnikom kot izkušenim razvijalcem.