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.
Kazalo
- Kaj je modul Python Requests?
- Kako narediti zahtevo GET prek zahtev Python
- Metode zahteve Http
- Objekt odziva
- Odzivne metode
- Avtentikacija z uporabo Python Requests
- Preverjanje SSL certifikata
- Objekti seje
- Zaključek
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 –
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>
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.
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: -
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:
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.