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ď.
Obsah
- Čo je modul Python Requests?
- Ako požiadať o GET prostredníctvom žiadostí Python
- Metódy žiadosti HTTP
- Objekt odpovede
- Metódy odozvy
- Autentifikácia pomocou Python Requests
- Overenie certifikátu SSL
- Objekty relácie
- Záver
Č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 -
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>
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.
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 :-
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:
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.