logo

Python-pyyntöjen opetusohjelma

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.



python-requests-moduuli

Sisällysluettelo

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ö –

python-requests-get-method

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>

vastaus-python-pyynnöt

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.

autentikoida-python-pyynnöt

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

ssl-certificate-verification-python-requests

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

session-objects-python-pyynnöt

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ä.