Python-pyynnöt: kaikki mitä sinun tarvitsee tietää



Tämä blogi opastaa sinut python-pyyntömoduulin läpi yksityiskohtaisesti. Opit tuntemaan GET- ja POST-pyynnöt, istuntoobjektit, evästeet ja otsikot.

Python pyytää päivittäin lähes 400 000 latausta. Tämä numero on riittävän ilmeinen ymmärtääkseen tämän suosiota . Viime vuosina python-ohjelmointikielestä on tullut halutuin ohjelmointikieli monille kehittäjille. Käsitteet ja kirjastot, kuten pyynnöt, on yksi monista syistä kehittäjille siirtyä muilta ohjelmointikieliltä pythonille. Tässä blogissa käymme läpi seuraavat aiheet:

Mikä on Python-pyyntöjä?

Python-pyynnöt on kirjoittanut Kenneth Reitz ja lisensoitu apache 2.0: lla. Se on ihmisystävällinen HTTP-kirjasto, kuten se mainitaan virallisella dokumentaatiosivulla. Sitä on helppo käyttää ja sitä käytetään periaatteessa kaikenlaisten HTTP-pyyntöjen tekemiseen. Seuraavassa on muutamia pyyntöjen mukana tulevia lisäominaisuuksia:
  1. Pysy hengissä ja yhdistä yhteys
  2. Kansainväliset verkkotunnukset ja URL-osoitteet
  3. Istunnot evästeiden pysyvyydellä
  4. Selain-tyylinen SSL-vahvistus
  5. Automaattinen sisällön dekoodaus
  6. Perus- / tiivistetodennus
  7. Tyylikäs avain / arvo evästeet
  8. Automaattinen purku
  9. Unicode-vastausrungot
  10. HTTP-välityspalvelimen tuki
  11. Moniosaiset tiedostot ladataan
  12. Suoratoistolataukset
  13. Yhteyden aikakatkaisut
  14. Palatut pyynnöt
Nämä ovat kaikki python-pyyntökirjaston edistyneitä ominaisuuksia, joten yritämme ymmärtää, miksi käytämme python-pyyntöjä ensinnäkin.

Miksi käyttää Python-pyyntöjä?

Miksi käytämme python-pyyntöjä? syy on melko yksinkertainen. Kun käytät python-pyyntöjä, sinun ei tarvitse lisätä kyselyjä manuaalisesti URL-osoitteisiisi ja muotoilla koodaavia postitietoja. Se helpottaa työtämme, kun teemme kaikenlaisia ​​http-pyyntöjä.Nyt kun olemme perehtyneet python-pyyntöihin ja miksi käytämme niitä pythonissa, voimme yrittää ymmärtää, miten aiomme asentaa pyynnöt projektiimme tai järjestelmäämme.

Kuinka asentaa Python-pyynnöt?

Asennusosa on myös erittäin helppo. Jos järjestelmään on asennettu pipenv-asennus, voit yksinkertaisesti suorittaa seuraavan komennon päätelaitteessa.

$ pip -asennuspyynnöt

kuinka käyttää stringbufferia Java - sovelluksessa
Tämä asentaa pyyntökirjaston järjestelmään. Pyyntöjen asentamiseen on vielä yksi tapa. Jos käytät pycharmia, voit lisätä pyyntöjä projektin tulkkiin asetuksissa. Se palvelee samaa tarkoitusta kuin pääte, jos kirjasto asennetaan projektiimme.Nyt kun olemme suorittaneet asennuksen, voimme yrittää ymmärtää, miten teemme pyyntöjä ja lähetämme pythonissa.

Kuinka tehdä pyyntöjä?

Hae pyyntöä käytetään periaatteessa tietojen pyytämiseen palvelimelta. Seuraava on syntaksi hakupyynnön tekemiseen.
tuontipyynnöt res = request.get ('url') #res on vastausobjekti tässä.
Lähetyspyyntöä käytetään käsiteltävien tietojen lähettämiseen palvelimelle. Seuraava on syntaksin lähettämistä koskeva pyyntö.
tuontipyyntöjen hyötykuorma = {'avain1': 'arvo1'} res = pyynnöt.post ('url', data = hyötykuorma)
Nyt kun tiedämme, miten voimme tehdä haku- ja lähetyspyyntöjä, katsotaanpa, kuinka voimme välittää parametreja URL-osoitteelle hakupyynnön avulla.

Parametrien välittäminen URL-osoitteessa

Parametrien välittäminen URL-osoitteessa on yhtä helppoa kuin hakupyynnön tekeminen. Seuraava on esimerkki parametrien siirtämisestä URL-osoitteeseen.
tuontipyyntöjen hyötykuorma = {'avain1': 'arvo1', 'avain2': 'arvo2'} res = pyynnöt.get ('url', parametrit = hyötykuorma) tulosta (res.url) #tämä tulostaa URL-osoitteen parametreilla läpäissyt hakupyynnön.

Tilakoodi

Voimme tarkistaa myös tilakoodin, seuraava on koodi tilakoodin tarkistamiseksi:





tuontipyynnöt res = request.get ('url') tulosta (res.status_code ())
Jos koodi palauttaa 200, se tarkoittaa, ettei virhettä ole ja pyyntö on hyvin. Jos teemme huonon pyynnön, koodi palauttaa koodin, kuten 404 tai 505, mikä aiheuttaa http-virheen.

Vastauksen sisältö

Voimme myös lukea palvelimen vastauksen sisällön. Kirjasto purkaa sisällön automaattisesti palvelimelta.
tuontipyynnöt res = request.get ('url') tulosta (res.content)

Pyynnöissä on myös sisäänrakennettu Json-dekooderi.

tuontipyynnöt res = request.get ('url') tulosta (res.json ()) #tämä saa vastauksen json-muodossa

Usean osan tiedoston lataus

Moniosaisia ​​tiedostoja on erittäin helppo ladata pyyntöjen avulla.
tuontipyyntötiedostot = {'tiedosto': avoin ('tiedostonimi', 'rb')} res = pyynnöt.post ('url', tiedostot = tiedostot) tulosta (res.text)
Usean tiedoston lähettämistä varten määritämme useita tiedostoja tiedostoparametrissa.

Evästeet ja otsikot

Voimme tarkastella palvelimen vastausotsikoita ja evästeitä vastausobjektin avulla. Seuraava on koodi palvelimen otsikoiden tarkastelemiseen.
tuontipyynnöt res = request.get ('url') tulosta (res.headers)
Voimme välittää mukautetut otsikot myös URL-osoitteeseen. Katsotaanpa katsoa koodi.
tuontipyyntöjen otsikot = {'avain1': 'arvo1'} res = pyynnöt.get ('url', otsikot = otsikot) tulosta (res.otsikot)
Pyynnöt eivät muuta käyttäytymistään mukautettujen otsikkojen perusteella. Ne välitetään yksinkertaisesti viimeiselle pyynnölle. keksit voidaan tarkastella myös vastausobjektilla.
tuontipyynnöt # välittääksemme omat evästeemme voimme käyttää evästeiden parametria cookies = dict (cookies = 'working') res = request.get ('url', cookies = cookies) print (res.text)

Evästeet palautetaan RequestCookieJarissa, joka toimii sanakirjan tavoin, mutta tarjoaa myös täydellisemmän käyttöliittymän, joka soveltuu käytettäväksi useilla verkkotunnuksilla tai poluilla.



Istunnon objekti

Istuntoobjektin avulla voit säilyttää tietyt parametrit pyynnöissä.
  • Säilyttää evästeet kaikissa istuntokokonaisuuden pyynnöissä
  • Käytä urllib3-yhteyden yhdistämistä
  • Merkittävä suorituskyky kasvaa
  • Istuntoobjektilla on kaikki pääpyyntöliittymän menetelmät
Seuraava on koodi, jolla jotkut evästeet säilytetään pyyntöjen aikana.
s = request.session () s.get ('url') res = s.get ('url') tulosta (res.text)

Virheet ja poikkeukset

Seuraavassa on virheitä ja poikkeuksia, joita python-pyyntö herättää.
  • Verkko-ongelman sattuessa pyynnöt herättävät ConnectionError-poikkeuksen.
  • Response.raise_for_status () herättää HTTP-virheen, kun tilakoodi epäonnistuu.
  • Jos aikakatkaisu on olemassa, se aiheuttaa aikakatkaisun poikkeuksen
  • TooManyRedirects-poikkeus nousee, jos pyyntö ylittää uudelleenohjausten enimmäismäärän määritetyn määrän.
Tässä blogissa olemme keskustelleet python-pyyntömoduulista, jossa meillä on useita lisäominaisuuksia. Keskustelimme pythonin pyyntökirjaston asennuksesta ja haku- ja lähetyspyynnön tekemisestä vastaussisällön ja muiden käsitteiden kanssa. Python-pyyntömoduuli on yksi monista erikoisominaisuuksista python-ohjelmointikieli . Voit aloittaa oppimisen kirjautumalla sisään ja tutustu python-ohjelmointikielen mahdollisuuksiin. Onko sinulla kysyttävää? mainitse ne kommenttiosassa, palaamme sinuun.