logo

Návod na požiadavky Pythonu

The Knižnica požiadaviek v Pythone je jednou z neoddeliteľných súčastí Pythonu na vytváranie požiadaviek HTTP na zadanú adresu URL. Či už ide o REST API alebo Web Scraping, požiadavky sa musia naučiť, aby ste mohli pokračovať s týmito technológiami. Keď niekto zadá požiadavku na URI, vráti odpoveď. Žiadosti Pythonu poskytujú vstavané funkcie na správu požiadavky aj odpovede.

binárne typy stromov

V tomto návode preskúmame, čo je Knižnica požiadaviek Pythonu , Ako spraviť žiadosti GET prostredníctvom Python Requests, Response Objects and Methods, Authentication using Python Requests atď.



python-requests-module

Obsah

Čo je modul Python Requests?

  • Requests je Apache2 licencovaná HTTP knižnica, ktorá umožňuje posielať HTTP/1.1 požiadavky pomocou Pythonu.
  • Ak chcete hrať s webom, Python Requests je nutnosťou. Či už ide o zasahovanie do API, sťahovanie celých facebookových stránok a oveľa viac skvelých vecí, budete musieť zadať požiadavku na URL.
  • Žiadosti zohrávajú hlavnú úlohu pri vybavovaní REST API , a Zoškrabovanie webu .
  • Pozrite si príklad skriptu Python pomocou požiadaviek a škrabania webu – Implementácia škrabania webu v Pythone s BeautifulSoup

Inštalácia žiadostí

Inštalácia požiadaviek závisí od typu operačného systému na eis, základným príkazom kdekoľvek by bolo otvorenie príkazového terminálu a spustenie,



pip install requests>

Základnou metódou inštalácie požiadaviek na ľubovoľný operačný systém je uchopenie základných súborov a manuálna inštalácia požiadaviek a požiadavky sa aktívne vyvíjajú na GitHub, kde je kód vždy dostupný. Pre kód - navštívte tu . Verejné úložisko môžete naklonovať:

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

Keď budete mať kópiu zdrojového kódu, môžete ho vložiť do vlastného balíka Python alebo ho jednoducho nainštalovať do balíkov stránok:

cd requestspip install   .>

Ďalšie informácie o pokladni - Ako nainštalovať požiadavky v Pythone – pre Windows, linux, mac



Podanie žiadosti

Modul požiadaviek Pythonu má niekoľko vstavaných metód na vytváranie požiadaviek Http na špecifikované URI pomocou požiadaviek GET, POST, PUT, PATCH alebo HEAD. Požiadavka Http je určená na získanie údajov zo zadaného URI alebo na odoslanie údajov na server. Funguje ako protokol žiadosť-odpoveď medzi klientom a serverom. Ukážme si, ako zadať požiadavku GET na koncový bod. Metóda GET sa používa na získanie informácií z daného servera pomocou daného URI. Metóda GET odosiela zakódované informácie o používateľovi pripojené k žiadosti o stránku. Stránka a zakódované informácie sú oddelené znakom „?“. Napríklad:

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

Ako požiadať o GET prostredníctvom žiadostí Python

Modul požiadaviek Pythonu poskytuje vstavanú metódu tzv dostať () na vytvorenie požiadavky GET na zadaný URI.

Syntax

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

Príklad:

Skúsme napríklad požiadať o API github.

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

>

>

uložte tento súbor ako request.py a cez spustenie terminálu,

python request.py>

Výkon -

python-requests-get-method

Pre viac, navštívte - Metóda GET – požiadavky Pythonu

Metódy žiadosti HTTP

Metóda Popis
GET Metóda GET sa používa na získanie informácií z daného servera pomocou daného URI.
POST Metóda požiadavky POST požaduje, aby webový server akceptoval údaje uvedené v tele správy požiadavky, s najväčšou pravdepodobnosťou na ich uloženie
PUT Metóda PUT vyžaduje, aby bola uzavretá entita uložená pod dodaným URI. Ak URI odkazuje na už existujúci zdroj, upraví sa a ak URI neukazuje na existujúci zdroj, server môže vytvoriť zdroj s týmto URI.
VYMAZAŤ Metóda DELETE vymaže zadaný zdroj
HLAVA Metóda HEAD požaduje odpoveď identickú s požiadavkou GET, ale bez tela odpovede.
ZÁPLATA Používa sa na úpravu schopností. Požiadavka PATCH musí obsahovať iba zmeny prostriedku, nie celý prostriedok

Objekt odpovede

Keď niekto zadá požiadavku na URI, vráti odpoveď. Tento objekt Response z hľadiska pythonu je vrátený request.method(), pričom metóda je – get, post, put atď. Response je výkonný objekt s množstvom funkcií a atribútov, ktoré pomáhajú pri normalizácii údajov alebo vytváraní ideálnych častí kódu. Napríklad, response.status_code vráti stavový kód zo samotných hlavičiek a je možné skontrolovať, či bola požiadavka úspešne spracovaná alebo nie. Objekt odozvy možno použiť na vyjadrenie množstva funkcií, metód a funkcií.

nginx

Príklad:

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

>

>

Uložte tento súbor ako request.py a spustite príkaz nižšie

Python request.py>

odpovede-python-požiadavky

Stavový kód 200 označuje, že požiadavka bola úspešne vykonaná.

Metódy odozvy

Metóda Popis
odpoveď.hlavičky response.headers vráti slovník hlavičiek odpovedí.
odozva.kódovanie response.encoding vráti kódovanie použité na dekódovanie response.content.
odozva.uplynula response.elapsed vracia objekt timedelta s časom, ktorý uplynul od odoslania požiadavky do príchodu odpovede.
response.close() response.close() zatvorí spojenie so serverom.
odpoveď.obsah response.content vráti obsah odpovede v bajtoch.
odozva.cookies response.cookies vráti objekt CookieJar s cookies odoslanými späť zo servera.
odozva.história response.history vráti zoznam objektov odpovedí obsahujúcich históriu požiadavky (url).
response.is_permanent_redirect response.is_permanent_redirect vráti hodnotu True, ak je odpoveď trvalou presmerovanou adresou URL, v opačnom prípade vráti hodnotu False.
response.is_redirect response.is_redirect vráti True, ak bola odpoveď presmerovaná, inak False.
response.iter_content() response.iter_content() iteruje cez response.content.
response.json() response.json() vráti objekt JSON výsledku (ak bol výsledok napísaný vo formáte JSON, ak nie, vyvolá chybu).
response.url response.url vráti adresu URL odpovede.
odpoveď.text response.text vráti obsah odpovede v unicode.
response.status_code response.status_code vracia číslo, ktoré označuje stav (200 je OK, 404 je Nenájdené).
odpoveď.žiadosť response.request vráti objekt požiadavky, ktorý si vyžiadal túto odpoveď.
odpoveď.dôvod response.reason vráti text zodpovedajúci stavovému kódu.
response.raise_for_status() response.raise_for_status() vráti objekt HTTPError, ak sa počas procesu vyskytla chyba.
odpoveď.ok response.ok vráti True, ak je status_code menší ako 200, inak False.
odozva.odkazy response.links vráti odkazy v hlavičke.

Autentifikácia pomocou Python Requests

Autentifikácia sa týka udelenia povolení používateľovi na prístup ku konkrétnemu zdroju. Keďže každému nemôže byť povolený prístup k údajom z každej adresy URL, vyžaduje sa predovšetkým overenie. Na dosiahnutie tejto autentifikácie sa zvyčajne poskytujú autentifikačné údaje prostredníctvom autorizačnej hlavičky alebo vlastnej hlavičky definovanej serverom.

Príklad –

Python3

syntax git pull




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

>

>

Nahraďte používateľa a zadajte svoje používateľské meno a heslo. Overí požiadavku a vráti odpoveď 200, inak vráti chybu 403.

authenticate-python-requests

Pre ďalšiu návštevu - Autentifikácia pomocou požiadaviek Pythonu

Overenie certifikátu SSL

Requests overuje certifikáty SSL pre požiadavky HTTPS, rovnako ako webový prehliadač. Certifikáty SSL sú malé dátové súbory, ktoré digitálne spájajú kryptografický kľúč s údajmi o organizácii. Webová stránka s certifikátom SSL sa často označuje ako zabezpečená webová stránka. V predvolenom nastavení je overenie SSL povolené a Žiadosti vyvolajú chybu SSLE, ak nie je možné overiť certifikát.

Zakázať overenie certifikátu SSL

Skúsme sa dostať na webovú stránku s neplatným certifikátom SSL pomocou požiadaviek Pythonu

Python3




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

>

>

Výkon :-

ssl-certificate-verification-python-requests

Táto webová stránka nemá nastavenie SSL, takže vyvoláva túto chybu. odkaz na certifikát je možné odovzdať aj na overenie iba prostredníctvom žiadostí python.

Python3


git príkazy pre push



# import requests module> import> requests> # Making a get request> response>=> requests.get(>' https://github.com '>, verify>=>'/path/to/certfile'>)> # print request object> print>(response)>

>

>

Toto by fungovalo v prípade, že poskytnutá cesta je správna pre certifikát SSL pre github.com.

Pre ďalšiu návštevu - Overenie certifikátu SSL – požiadavky Pythonu

Objekty relácie

Objekt relácie umožňuje zachovať určité parametre v rámci požiadaviek. Uchováva tiež súbory cookie vo všetkých požiadavkách uskutočnených z inštancie relácie a použije združovanie pripojení urllib3. Ak sa teda tomu istému hostiteľovi odošle niekoľko požiadaviek, základné pripojenie TCP sa znova použije, čo môže viesť k výraznému zvýšeniu výkonu. Objekt relácie všetky metódy ako požiadavky.

Používanie objektov relácie

Ukážme si použitie objektov relácie nastavením súboru cookie na adresu URL a následným opätovným zadaním požiadavky na kontrolu, či je súbor cookie nastavený.

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

>

>

Výkon:

session-objects-python-requests

koľko kláves má klávesnice

Pre viac, navštívte - Objekty relácie – požiadavky Pythonu

Záver

Python Request Library je výkonný nástroj na vytváranie požiadaviek HTTP a interakciu s webovými rozhraniami API. V tomto návode sme sa zaoberali základmi odosielania požiadaviek GET a POST, spracovania parametrov a hlavičiek a správy údajov odpovedí. Vďaka jednoduchosti a intuitívnemu dizajnu je knižnica dostupná pre začiatočníkov aj skúsených vývojárov.