The Python Python-kirjastoa on yksi Pythonin olennaisista osista HTTP-pyyntöjen tekemiseen määritettyyn URL-osoitteeseen. Olipa kyse sitten REST-sovellusliittymistä tai Web Scrapingista, pyynnöt on opittava näiden tekniikoiden käytön jatkamiseksi. Kun tehdään pyyntö URI:lle, se palauttaa vastauksen. Python-pyynnöt tarjoavat sisäänrakennettuja toimintoja sekä pyynnön että vastauksen hallintaan.
cdr täysi muoto
Tässä opetusohjelmassa tutkimme, mikä on Python-pyyntökirjasto , Kuinka tehdään HANKI pyynnöt Python-pyyntöjen, vastausobjektien ja -menetelmien, Python-pyyntöjen avulla tapahtuvan todennuksen ja niin edelleen.
Sisällysluettelo
- Mikä on Python Requests -moduuli?
- Kuinka tehdä GET-pyyntö Python-pyyntöjen kautta
- Http-pyyntömenetelmät
- Vastausobjekti
- Vastausmenetelmät
- Todennus Python-pyyntöjen avulla
- SSL-sertifikaatin vahvistus
- Istuntoobjektit
- Johtopäätös
Mikä on Python Requests -moduuli?
- Requests on Apache2-lisensoitu HTTP-kirjasto, joka mahdollistaa HTTP/1.1-pyyntöjen lähettämisen Pythonilla.
- Python Requests on pakollinen, jotta voit pelata verkossa. Olipa kyseessä sovellusliittymien osuminen, kokonaisten Facebook-sivujen lataaminen ja paljon muuta hienoa, URL-osoitteeseen on tehtävä pyyntö.
- Pyynnöt ovat tärkeässä roolissa käsitellään REST-sovellusliittymät , ja Verkkokaappaus .
- Tarkista esimerkki Python-skriptistä pyyntöjen ja Web-kaappauksen avulla - Web-kaappauksen toteuttaminen Pythonissa BeautifulSoupin avulla
Pyyntöjen asennus
Asennuspyynnöt riippuu eis-käyttöjärjestelmän tyypistä, peruskomento missä tahansa olisi avata komentopääte ja ajaa,
pip install requests>
Perusmenetelmä pyyntöjen asentamiseen mihin tahansa käyttöjärjestelmään on napata perustiedostot ja asentaa pyynnöt manuaalisesti, ja Requestsia kehitetään aktiivisesti GitHubissa, jossa koodi on aina saatavilla. Koodille - käy täällä . Voit joko kloonata julkisen arkiston:
git clone git://github.com/psf/requests.git>
Kun sinulla on kopio lähteestä, voit upottaa sen omaan Python-pakettiisi tai asentaa sen helposti sivustopaketteihisi:
cd requestspip install .>
Lisää kassalle - Python-pyyntöjen asentaminen - Windowsille, linuxille, macille
Pyynnön tekeminen
Python-pyyntömoduulissa on useita sisäänrakennettuja menetelmiä Http-pyyntöjen tekemiseen määritettyyn URI-osoitteeseen GET-, POST-, PUT-, PATCH- tai HEAD-pyyntöjen avulla. Http-pyynnön tarkoituksena on joko noutaa tietoja määritetystä URI:sta tai siirtää tietoja palvelimelle. Se toimii pyyntö-vastausprotokollana asiakkaan ja palvelimen välillä. Osoitetaan, kuinka GET-pyyntö tehdään päätepisteeseen. GET-menetelmää käytetään tietojen hakemiseen tietystä palvelimesta tietyn URI:n avulla. GET-menetelmä lähettää koodatut käyttäjätiedot, jotka on liitetty sivupyyntöön. Sivu ja koodatut tiedot erotetaan ?-merkillä. Esimerkiksi:
https://www.google.com/search?q=hello>
Kuinka tehdä GET-pyyntö Python-pyyntöjen kautta
Pythonin pyyntömoduuli tarjoaa sisäänrakennetun menetelmän nimeltä saada() GET-pyynnön tekemiseen määritettyyn URI:hen.
Syntaksi
requests.get(url, params={key: value}, args)>
Esimerkki:
Yritetään tehdä pyyntö esimerkiksi githubin sovellusliittymille.
Python 3
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)> |
>
>
tallenna tämä tiedosto nimellä request.py ja suorita terminaali,
lajittelutaulukko javassa
python request.py>
Lähtö –
Katso lisää vierailemalla - GET-menetelmä – Python-pyynnöt
Http-pyyntömenetelmät
Menetelmä | Kuvaus |
---|---|
SAADA | GET-menetelmää käytetään tietojen hakemiseen tietystä palvelimesta tietyn URI:n avulla. |
LÄHETTÄÄ | POST-pyyntömenetelmä pyytää, että verkkopalvelin hyväksyy pyyntöviestin runkoon sisältyvät tiedot, todennäköisimmin niiden tallentamista varten |
LAITTAA | PUT-menetelmä pyytää, että suljettu kokonaisuus tallennetaan toimitetun URI:n alle. Jos URI viittaa jo olemassa olevaan resurssiin, sitä muutetaan ja jos URI ei osoita olemassa olevaan resurssiin, palvelin voi luoda resurssin tällä URI:lla. |
POISTAA | DELETE-menetelmä poistaa määritetyn resurssin |
PÄÄ | HEAD-menetelmä pyytää vastausta, joka on identtinen GET-pyynnön kanssa, mutta ilman vastauksen runkoa. |
PISTERI | Sitä käytetään ominaisuuksien muokkaamiseen. PATCH-pyynnön täytyy sisältää vain resurssin muutokset, ei koko resurssia |
Vastausobjekti
Kun tehdään pyyntö URI:lle, se palauttaa vastauksen. Tämän pythonin Response-objektin palauttaa requests.method(, jonka menetelmä on - get, post, put jne. Response on tehokas objekti, jossa on paljon toimintoja ja attribuutteja, jotka auttavat normalisoimaan tietoja tai luomaan ihanteellisia koodiosia. Esimerkiksi, vastaus.tilakoodi palauttaa tilakoodin itse otsikoista, ja voidaan tarkistaa, onnistuiko pyynnön käsittely vai ei. Response-objektia voidaan käyttää ilmaisemaan monia ominaisuuksia, menetelmiä ja toimintoja.
Esimerkki:
Python 3
# 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)> |
>
>
Tallenna tämä tiedosto nimellä request.py ja suorita alla olevalla komennolla
Python request.py>
hakukone ja esimerkkejä
Tilakoodi 200 osoittaa, että pyyntö on tehty onnistuneesti.
Vastausmenetelmät
Menetelmä | Kuvaus |
---|---|
vastaus.otsikot | response.headers palauttaa vastausotsikoiden sanakirjan. |
vastaus.koodaus | vastaus.encoding palauttaa koodauksen, jota käytetään vastaus.sisällön purkamiseen. |
vastaus.kulunut | response.elapsed palauttaa timedelta-objektin, jossa on aika, joka on kulunut pyynnön lähettämisestä vastauksen saapumiseen. |
vastaus.close() | response.close() sulkee yhteyden palvelimeen. |
vastaus.sisältö | vastaus.sisältö palauttaa vastauksen sisällön tavuina. |
vastaus.evästeet | vastaus.cookies palauttaa CookieJar-objektin, jossa evästeet lähetetään takaisin palvelimelta. |
vastaus.historia | response.history palauttaa luettelon vastausobjekteista, jotka sisältävät pyyntöhistorian (url). |
vastaus.is_permanent_redirect | response.is_permanent_redirect palauttaa True, jos vastaus on pysyvä uudelleenohjattu URL-osoite, muussa tapauksessa False. |
vastaus.is_uudelleenohjaus | vastaus.is_uudelleenohjaus palauttaa True, jos vastaus ohjattiin, muussa tapauksessa False. |
vastaus.iter_content() | vastaus.iter_content() toistuu vastauksen.content kautta. |
vastaus.json() | response.json() palauttaa tuloksen JSON-objektin (jos tulos on kirjoitettu JSON-muodossa, jos ei, se aiheuttaa virheen). |
vastaus.url | vastaus.url palauttaa vastauksen URL-osoitteen. |
vastaus.teksti | vastaus.teksti palauttaa vastauksen sisällön unicode-muodossa. |
vastaus.tilakoodi | vastaus.tilakoodi palauttaa numeron, joka ilmaisee tilan (200 on OK, 404 ei löydy). |
vastaus.pyyntö | vastaus.request palauttaa pyyntöobjektin, joka pyysi tätä vastausta. |
vastaus.syy | vastaus.reason palauttaa tilakoodia vastaavan tekstin. |
vastaus.raise_for_status() | response.raise_for_status() palauttaa HTTPError-objektin, jos prosessin aikana on tapahtunut virhe. |
vastaus.ok | vastaus.ok palauttaa True, jos status_code on pienempi kuin 200, muussa tapauksessa False. |
vastaus.linkit | response.links palauttaa otsikkolinkit. |
Todennus Python-pyyntöjen avulla
Todennus tarkoittaa käyttäjälle oikeuksien antamista käyttää tiettyä resurssia. Koska kaikki eivät voi päästä käsiksi kaikkien URL-osoitteiden tietoihin, vaadittaisiin ensisijaisesti todennus. Tämän todennuksen saavuttamiseksi tyypillisesti tarjotaan todennustiedot valtuutusotsikon tai palvelimen määrittämän mukautetun otsikon kautta.
Esimerkki -
Python 3
# 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)> |
>
>
Vaihda käyttäjä ja passi käyttäjätunnuksellasi ja salasanallasi. Se todentaa pyynnön ja palauttaa vastauksen 200 tai muuten se palauttaa virheen 403.
Katso lisää - Todennus Python-pyyntöjen avulla
SSL-sertifikaatin vahvistus
Requests vahvistaa HTTPS-pyyntöjen SSL-varmenteet, aivan kuten verkkoselain. SSL-sertifikaatit ovat pieniä datatiedostoja, jotka sitovat digitaalisesti salausavaimen organisaation tietoihin. Usein SSL-varmenneella varustettua verkkosivustoa kutsutaan suojatuksi verkkosivustoksi. Oletusarvoisesti SSL-vahvistus on käytössä, ja Requests lähettää SSLE-virheilmoituksen, jos se ei pysty vahvistamaan varmennetta.
Poista SSL-varmenteen vahvistus käytöstä
Yritetään päästä verkkosivustolle, jolla on virheellinen SSL-sertifikaatti Python-pyyntöjen avulla
Python 3
c Boolen arvo
# import requests module> import> requests> # Making a get request> response> => requests.get(> ' https://expired.badssl.com/ '> )> # print request object> print> (response)> |
>
>
Lähtö:-
Tällä sivustolla ei ole SSL-asetuksia, joten se aiheuttaa tämän virheen. voidaan myös välittää linkki varmenteeseen vahvistusta varten vain python-pyyntöjen kautta.
Python 3
# import requests module> import> requests> # Making a get request> response> => requests.get(> ' https://github.com '> , verify> => '/path/to/certfile'> )> # print request object> print> (response)> |
>
>
Tämä toimisi, jos annettu polku on oikea github.comin SSL-sertifikaatille.
Lisätietoja - SSL-sertifikaatin vahvistus – Python-pyynnöt
Istuntoobjektit
Istuntoobjekti sallii tiettyjen parametrien säilyttämisen pyynnöissä. Se säilyttää myös evästeet kaikissa istuntoesiintymästä tehdyissä pyynnöissä ja käyttää urllib3:n yhteysvarausta. Joten jos samalle isännälle tehdään useita pyyntöjä, taustalla olevaa TCP-yhteyttä käytetään uudelleen, mikä voi johtaa merkittävään suorituskyvyn kasvuun. Istuntoobjekti, joka sisältää kaikki menetelmät pyyntöjen mukaan.
Istuntoobjektien käyttö
Havainnollistetaan istuntoobjektien käyttöä asettamalla eväste URL-osoitteeseen ja tekemällä sitten uudelleen pyyntö tarkistaa, onko eväste asetettu.
Python 3
teelusikallinen vs ruokalusikka
# 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)> |
>
>
Lähtö:
Katso lisää vierailemalla - Istuntoobjektit – Python-pyynnöt
Johtopäätös
Python Request Library on tehokas työkalu HTTP-pyyntöjen tekemiseen ja vuorovaikutukseen verkkosovellusliittymien kanssa. Tässä opetusohjelmassa käsittelimme GET- ja POST-pyyntöjen lähettämisen, parametrien ja otsikoiden käsittelyn sekä vastaustietojen hallinnan perusteet. Kirjaston yksinkertaisuus ja intuitiivinen suunnittelu tekevät siitä sekä aloittelijoiden että kokeneiden kehittäjien käytettävissä.