logo

Python pieprasījumu apmācība

The Pieprasa bibliotēku Python ir viena no Python neatņemamajām daļām HTTP pieprasījumu veikšanai uz noteiktu URL. Neatkarīgi no tā, vai tās ir REST API vai Web Scraping, pieprasījumi ir jāapgūst, lai turpinātu darbu ar šīm tehnoloģijām. Kad kāds veic pieprasījumu URI, tas atgriež atbildi. Python pieprasījumi nodrošina iebūvētas funkcijas gan pieprasījuma, gan atbildes pārvaldībai.

pavasara zābaku arhitektūra

Šajā apmācībā mēs izpētīsim, kas ir Python pieprasījumu bibliotēka , Kā pagatavot SAŅEMT pieprasījumus izmantojot Python pieprasījumus, atbildes objektus un metodes, autentifikāciju, izmantojot Python pieprasījumus un tā tālāk.



python-requests-module

Satura rādītājs

Kas ir Python pieprasījumu modulis?

  • Pieprasījumi ir Apache2 licencēta HTTP bibliotēka, kas ļauj nosūtīt HTTP/1.1 pieprasījumus, izmantojot Python.
  • Lai spēlētu ar tīmekli, Python pieprasījumi ir obligāti. Neatkarīgi no tā, vai tā ir saskarne ar API, visu Facebook lapu lejupielāde un daudz kas cits, jums būs jāiesniedz pieprasījums URL.
  • Pieprasījumiem ir liela nozīme tiek galā REST API , un Tīmekļa skrāpēšana .
  • Pārbaudiet Python skripta piemēru, izmantojot pieprasījumus un tīmekļa skrāpēšanu - Tīmekļa skrāpēšanas ieviešana Python, izmantojot BeautifulSoup

Pieprasījumu instalēšana

Pieprasījumu instalēšana ir atkarīga no eis operētājsistēmas veida, pamata komanda jebkur būtu atvērt komandu termināli un palaist,



pip install requests>

Pamatmetode pieprasījumu instalēšanai jebkurā operētājsistēmā ir bāzes failu satveršana un pieprasījumu manuāla instalēšana, un pieprasījumi tiek aktīvi izstrādāti vietnē GitHub, kur kods vienmēr ir pieejams. Par kodu - apmeklējiet šeit . Varat klonēt publisko repozitoriju:

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

Kad jums ir avota kopija, varat to iegult savā Python pakotnē vai viegli instalēt savās vietņu pakotnēs:

cd requestspip install   .>

Lai iegūtu vairāk izrakstīšanās - Kā instalēt pieprasījumus Python — operētājsistēmai Windows, Linux, Mac



Pieprasījuma veikšana

Python pieprasījumu modulim ir vairākas iebūvētas metodes, lai veiktu Http pieprasījumus uz norādīto URI, izmantojot GET, POST, PUT, PATCH vai HEAD pieprasījumus. Http pieprasījums ir paredzēts datu izgūšanai no norādītā URI vai datu nosūtīšanai uz serveri. Tas darbojas kā pieprasījuma-atbildes protokols starp klientu un serveri. Parādīsim, kā galapunktam veikt GET pieprasījumu. GET metode tiek izmantota, lai izgūtu informāciju no dotā servera, izmantojot doto URI. GET metode nosūta kodētu lietotāja informāciju, kas pievienota lapas pieprasījumam. Lapa un kodētā informācija ir atdalīta ar rakstzīmi “?”. Piemēram:

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

Kā veikt GET pieprasījumu, izmantojot Python pieprasījumus

Python pieprasījumu modulis nodrošina iebūvētu metodi, ko sauc gūt() lai veiktu GET pieprasījumu uz norādīto URI.

Sintakse

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

Piemērs :

Piemēram, mēģināsim iesniegt pieprasījumu github API.

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

>

>

saglabājiet šo failu kā request.py un izpildiet termināli,

python request.py>

Izvade -

python-requests-get-method

Lai uzzinātu vairāk, apmeklējiet - GET metode - Python pieprasījumi

HTTP pieprasījuma metodes

Metode Apraksts
GŪT GET metode tiek izmantota, lai izgūtu informāciju no dotā servera, izmantojot doto URI.
POSTĪT POST pieprasījuma metode pieprasa, lai tīmekļa serveris pieņemtu pieprasījuma ziņojuma pamattekstā ietvertos datus, visticamāk, lai tos saglabātu.
PUT PUT metode pieprasa, lai slēgtā entītija tiktu saglabāta zem piegādātā URI. Ja URI attiecas uz jau esošu resursu, tas tiek modificēts un, ja URI nenorāda uz esošu resursu, serveris var izveidot resursu ar šo URI.
DZĒST DELETE metode dzēš norādīto resursu
GALVA HEAD metode pieprasa atbildi, kas ir identiska GET pieprasījuma atbildei, bet bez atbildes pamatteksta.
PLĀKSTS To izmanto, lai mainītu iespējas. PATCH pieprasījumā ir jāietver tikai resursa izmaiņas, nevis viss resurss

Atbildes objekts

Kad kāds veic pieprasījumu URI, tas atgriež atbildi. Šo atbildes objektu python izteiksmē atgriež requests.method(), kura metode ir – iegūt, izlikt, ievietot utt. Response ir spēcīgs objekts ar daudzām funkcijām un atribūtiem, kas palīdz normalizēt datus vai izveidot ideālas koda daļas. Piemēram, atbildes.statusa_kods atgriež statusa kodu no pašām galvenēm, un var pārbaudīt, vai pieprasījums tika veiksmīgi apstrādāts vai nē. Atbildes objektu var izmantot, lai norādītu uz daudzām funkcijām, metodēm un funkcijām.

Piemērs :

Python3




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

>

zemsvītras piezīmes

>

Saglabājiet šo failu kā request.py un palaidiet, izmantojot tālāk norādīto komandu

Python request.py>

atbildes-python-pieprasījumi

Statusa kods 200 norāda, ka pieprasījums ir veiksmīgi veikts.

Atbildes metodes

Metode Apraksts
atbilde.galvenes response.headers atgriež atbilžu galveņu vārdnīcu.
atbilde.kodējums response.encoding atgriež atbildes.saturs atšifrēšanai izmantoto kodējumu.
atbilde.pagājusi response.elapsed atgriež timedelta objektu ar laiku, kas pagājis no pieprasījuma nosūtīšanas līdz atbildes saņemšanai.
atbilde.close() response.close() aizver savienojumu ar serveri.
atbilde.saturs response.content atgriež atbildes saturu baitos.
atbilde.sīkdatnes response.cookies atgriež CookieJar objektu ar sīkfailiem, kas nosūtīti atpakaļ no servera.
atbilde.vēsture response.history atgriež to atbildes objektu sarakstu, kuros ir pieprasījuma vēsture (url).
response.is_permanent_redirect response.is_permanent_redirect atgriež True, ja atbilde ir pastāvīgais novirzītais URL, pretējā gadījumā vērtību False.
atbilde.is_redirect response.is_redirect atgriež True, ja atbilde tika novirzīta, pretējā gadījumā False.
response.iter_content() response.iter_content() atkārtojas pār atbildi.content.
response.json() response.json() atgriež rezultāta JSON objektu (ja rezultāts tika rakstīts JSON formātā, ja nē, tas rada kļūdu).
atbilde.url response.url atgriež atbildes URL.
atbilde.teksts response.text atgriež atbildes saturu unikodā.
atbildes.statusa_kods atbildes.statusa_kods atgriež skaitli, kas norāda statusu (200 ir OK, 404 ir Nav atrasts).
atbilde.pieprasījums response.request atgriež pieprasījuma objektu, kas pieprasīja šo atbildi.
atbilde.iemesls response.reason atgriež tekstu, kas atbilst statusa kodam.
response.raise_for_status() response.raise_for_status() atgriež HTTPError objektu, ja procesa laikā ir notikusi kļūda.
atbilde.ok response.ok atgriež True, ja statusa_kods ir mazāks par 200, pretējā gadījumā False.
atbilde.saites response.links atgriež galvenes saites.

Autentifikācija, izmantojot Python pieprasījumus

Autentifikācija attiecas uz atļauju piešķiršanu lietotājam piekļūt noteiktam resursam. Tā kā ikvienam nevar ļaut piekļūt datiem no katra URL, vispirms būtu nepieciešama autentifikācija. Lai panāktu šo autentifikāciju, parasti tiek nodrošināti autentifikācijas dati, izmantojot autorizācijas galveni vai pielāgotu galveni, ko nosaka serveris.

Piemērs -

Python3




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

>

java numurs uz virkni
>

Aizstāt lietotāju un caurlaidi ar savu lietotājvārdu un paroli. Tas autentificēs pieprasījumu un atgriezīs atbildi 200 vai arī atgriezīs kļūdu 403.

autentificēt-python-pieprasījumi

Lai iegūtu vairāk apmeklējumu - Autentifikācija, izmantojot Python pieprasījumus

SSL sertifikāta pārbaude

Pieprasījumi pārbauda SSL sertifikātus HTTPS pieprasījumiem, tāpat kā tīmekļa pārlūkprogrammā. SSL sertifikāti ir mazi datu faili, kas digitāli saista kriptogrāfisko atslēgu ar organizācijas detaļām. Bieži vien vietne ar SSL sertifikātu tiek saukta par drošu vietni. Pēc noklusējuma SSL verifikācija ir iespējota, un pieprasījumi radīs SSLE kļūdu, ja nevarēs pārbaudīt sertifikātu.

Atspējot SSL sertifikāta verifikāciju

Mēģināsim piekļūt vietnei ar nederīgu SSL sertifikātu, izmantojot Python pieprasījumus

Python3

dfa piemēri




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

>

>

Izvade: -

ssl-certificate-verification-python-requests

Šai vietnei nav SSL iestatījuma, tāpēc tiek parādīta šī kļūda. var arī nodot saiti uz sertifikātu apstiprināšanai, izmantojot tikai python pieprasījumus.

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

>

>

Tas darbotos, ja norādītais ceļš ir pareizs SSL sertifikātam vietnei github.com.

Lai iegūtu vairāk apmeklējumu - SSL sertifikāta verifikācija — Python pieprasījumi

Sesijas objekti

Sesijas objekts ļauj saglabāt noteiktus parametrus visos pieprasījumos. Tas arī saglabā sīkfailus visos pieprasījumos, kas veikti no sesijas instances, un izmantos urllib3 savienojumu apkopošanu. Tātad, ja vienam un tam pašam resursdatoram tiek veikti vairāki pieprasījumi, pamatā esošais TCP savienojums tiks izmantots atkārtoti, kā rezultātā var ievērojami palielināties veiktspēja. Sesijas objekts, kurā tiek izmantotas visas pieprasījumu metodes.

Sesijas objektu izmantošana

Ilustrēsim sesijas objektu izmantošanu, iestatot sīkfailu vietrādim URL un pēc tam vēlreiz veicot pieprasījumu, lai pārbaudītu, vai sīkfails ir iestatīts.

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

>

java char uz veselu skaitli
>

Izvade:

session-objects-python-requests

Lai uzzinātu vairāk, apmeklējiet - Sesijas objekti — Python pieprasījumi

Secinājums

Python Request Library ir spēcīgs rīks HTTP pieprasījumu veikšanai un mijiedarbībai ar tīmekļa API. Šajā apmācībā mēs apskatījām GET un POST pieprasījumu nosūtīšanas, parametru un galvenes apstrādes un atbilžu datu pārvaldīšanas pamatus. Bibliotēkas vienkāršība un intuitīvais dizains padara to pieejamu gan iesācējiem, gan pieredzējušiem izstrādātājiem.