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.
Satura rādītājs
- Kas ir Python pieprasījumu modulis?
- Kā veikt GET pieprasījumu, izmantojot Python pieprasījumus
- HTTP pieprasījuma metodes
- Atbildes objekts
- Atbildes metodes
- Autentifikācija, izmantojot Python pieprasījumus
- SSL sertifikāta pārbaude
- Sesijas objekti
- Secinājums
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 -
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>
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.
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: -
Š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:
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.