logo

Tutorial de sol·licituds de Python

El Sol·licita la biblioteca en Python és una de les parts integrals de Python per fer sol·licituds HTTP a un URL especificat. Tant si es tracta d'API REST com de Web Scraping, cal aprendre les sol·licituds per continuar amb aquestes tecnologies. Quan un fa una sol·licitud a un URI, retorna una resposta. Les sol·licituds de Python proporcionen funcionalitats integrades per gestionar tant la sol·licitud com la resposta.

fitxers linux

En aquest tutorial, explorarem Què és Biblioteca de sol·licituds de Python , Com fer GET sol·licituds mitjançant sol·licituds de Python, objectes i mètodes de resposta, autenticació mitjançant peticions de Python, etc.



python-requests-mòdul

Taula de contingut

Què és el mòdul Python Requests?

  • Requests és una biblioteca HTTP amb llicència Apache2, que permet enviar sol·licituds HTTP/1.1 mitjançant Python.
  • Per jugar amb la web, cal demanar Python Requests. Tant si es tracta d'accedir a API, baixar pàgines senceres de Facebook i molt més coses interessants, caldrà fer una sol·licitud a l'URL.
  • Les sol·licituds tenen un paper important amb què es tracta API REST , i Raspat web .
  • Comproveu un exemple d'script de Python mitjançant sol·licituds i raspat web: Implementació de Web Scraping a Python amb BeautifulSoup

Sol·licituds d'instal·lació

Les sol·licituds d'instal·lació depèn del tipus de sistema operatiu que utilitzeu eis, l'ordre bàsic a qualsevol lloc seria obrir un terminal d'ordres i executar-lo,



pip install requests>

El mètode bàsic per a la instal·lació de sol·licituds a qualsevol sistema operatiu és agafar els fitxers bàsics i instal·lar les sol·licituds manualment i les sol·licituds es desenvolupa activament a GitHub, on el codi sempre està disponible. Per al codi - visiteu aquí . Podeu clonar el repositori públic:

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

Un cop tingueu una còpia de la font, podeu incrustar-la al vostre propi paquet Python o instal·lar-la als vostres paquets de lloc fàcilment:

cd requestspip install   .>

Per a més pagament - Com instal·lar sol·licituds a Python: per a Windows, Linux, Mac



Fent una Sol·licitud

El mòdul de sol·licituds de Python té diversos mètodes integrats per fer sol·licituds Http a l'URI especificat mitjançant peticions GET, POST, PUT, PATCH o HEAD. Una sol·licitud Http està destinada a recuperar dades d'un URI especificat o enviar dades a un servidor. Funciona com un protocol de petició-resposta entre un client i un servidor. Demostrem com fer una sol·licitud GET a un punt final. El mètode GET s'utilitza per recuperar informació del servidor donat mitjançant un URI determinat. El mètode GET envia la informació codificada de l'usuari adjunta a la sol·licitud de la pàgina. La pàgina i la informació codificada estan separades pel caràcter '?'. Per exemple:

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

Com fer una sol·licitud GET mitjançant sol·licituds Python

El mòdul de peticions de Python proporciona un mètode integrat anomenat aconseguir() per fer una sol·licitud GET a un URI especificat.

Sintaxi

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

Exemple:

Provem de fer una sol·licitud a les API de github per exemple.

Python 3




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

>

objecte de la matriu en java
>

deseu aquest fitxer com a request.py i mitjançant l'execució del terminal,

python request.py>

Sortida -

python-requests-get-method

Per a més, visiteu - Mètode GET: sol·licituds de Python

Mètodes de sol·licitud HTTP

Mètode Descripció
ACONSEGUIR El mètode GET s'utilitza per recuperar informació del servidor donat mitjançant un URI determinat.
PUBLICACIÓ El mètode de sol·licitud POST sol·licita que un servidor web accepti les dades incloses al cos del missatge de sol·licitud, molt probablement per emmagatzemar-les.
POSAR El mètode PUT demana que l'entitat tancada s'emmagatzemi sota l'URI subministrat. Si l'URI fa referència a un recurs ja existent, es modifica i si l'URI no apunta a un recurs existent, el servidor pot crear el recurs amb aquest URI.
ELIMINAR El mètode DELETE elimina el recurs especificat
CAP El mètode HEAD demana una resposta idèntica a la d'una sol·licitud GET, però sense el cos de la resposta.
PATCH S'utilitza per modificar les capacitats. La sol·licitud PATCH només ha de contenir els canvis al recurs, no el recurs complet

Objecte de resposta

Quan un fa una sol·licitud a un URI, retorna una resposta. Aquest objecte Response en termes de Python és retornat per requests.method(), mètode essent - get, post, put, etc. Response és un objecte potent amb moltes funcions i atributs que ajuden a normalitzar dades o crear porcions ideals de codi. Per exemple, resposta.codi_estatus retorna el codi d'estat de les mateixes capçaleres i es pot comprovar si la sol·licitud s'ha processat correctament o no. L'objecte de resposta es pot utilitzar per implicar moltes característiques, mètodes i funcionalitats.

Exemple:

Python 3




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

>

>

Deseu aquest fitxer com a request.py i executeu-lo amb l'ordre següent

Python request.py>

resposta-sol·licituds-python

El codi d'estat 200 indica que la sol·licitud s'ha fet correctament.

Mètodes de resposta

Mètode Descripció
resposta.capçaleres response.headers retorna un diccionari de capçaleres de resposta.
resposta.codificació response.encoding retorna la codificació utilitzada per descodificar response.content.
resposta.ha transcorregut response.elapsed retorna un objecte timedelta amb el temps transcorregut des de l'enviament de la sol·licitud fins a l'arribada de la resposta.
resposta.tancar() response.close() tanca la connexió amb el servidor.
resposta.contingut response.content retorna el contingut de la resposta, en bytes.
resposta.galetes response.cookies retorna un objecte CookieJar amb les galetes enviades des del servidor.
resposta.història response.history retorna una llista d'objectes de resposta que contenen l'historial de la sol·licitud (url).
response.is_permanent_redirect response.is_permanent_redirect retorna True si la resposta és l'URL redirigit permanent, en cas contrari False.
resposta.és_redirecció response.is_redirect retorna True si la resposta s'ha redirigit, en cas contrari, False.
response.iter_content() response.iter_content() itera sobre el response.content.
response.json() response.json() retorna un objecte JSON del resultat (si el resultat s'ha escrit en format JSON, si no, genera un error).
resposta.url response.url retorna l'URL de la resposta.
resposta.text response.text retorna el contingut de la resposta, en unicode.
resposta.codi_estatus response.status_code retorna un número que indica l'estat (200 és correcte, 404 no es troba).
resposta.sol·licitud response.request retorna l'objecte de sol·licitud que ha sol·licitat aquesta resposta.
resposta.raó response.reason retorna un text corresponent al codi d'estat.
response.raise_for_status() response.raise_for_status() retorna un objecte HTTPError si s'ha produït un error durant el procés.
resposta.ok response.ok retorna True si status_code és inferior a 200, en cas contrari, False.
resposta.enllaços response.links retorna els enllaços de capçalera.

Autenticació mitjançant peticions de Python

L'autenticació es refereix a donar permisos a un usuari per accedir a un recurs determinat. Com que no es pot permetre que tothom accedeixi a les dades des de cada URL, caldria principalment l'autenticació. Per aconseguir aquesta autenticació, normalment es proporciona dades d'autenticació mitjançant la capçalera d'autorització o una capçalera personalitzada definida pel servidor.

Exemple -

Python 3




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

>

>

Substitueix l'usuari i passa amb el teu nom d'usuari i contrasenya. Autenticarà la sol·licitud i retornarà una resposta 200 o, en cas contrari, retornarà l'error 403.

authenticate-python-requests

Per a més visita - Autenticació mitjançant peticions de Python

diferència entre programa i guió

Verificació del certificat SSL

Requests verifica els certificats SSL per a les sol·licituds HTTPS, igual que un navegador web. Els certificats SSL són petits fitxers de dades que uneixen digitalment una clau criptogràfica amb els detalls d'una organització. Sovint, un lloc web amb un certificat SSL s'anomena lloc web segur. De manera predeterminada, la verificació SSL està activada i Requests generarà un error SSLE si no pot verificar el certificat.

Desactiva la verificació del certificat SSL

Intentem accedir a un lloc web amb un certificat SSL no vàlid mitjançant sol·licituds de Python

Python 3




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

>

>

Sortida:-

ssl-certificate-verification-python-requests

Aquest lloc web no té configuració SSL, de manera que genera aquest error. també es pot passar l'enllaç al certificat per a la validació només mitjançant sol·licituds de Python.

Python 3


programa java senzill



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

>

>

Això funcionaria en cas que el camí proporcionat sigui correcte per al certificat SSL per a github.com.

Per a més visita- Verificació del certificat SSL: sol·licituds de Python

casos de prova conjunta

Objectes de sessió

L'objecte de sessió permet mantenir determinats paràmetres entre les sol·licituds. També conserva les galetes a totes les sol·licituds fetes des de la instància de sessió i utilitzarà l'agrupació de connexions d'urllib3. Per tant, si es fan diverses sol·licituds al mateix amfitrió, es reutilitzarà la connexió TCP subjacent, cosa que pot provocar un augment significatiu del rendiment. Un objecte de sessió tots els mètodes a partir de les peticions.

Ús d'objectes de sessió

Il·lustrem l'ús d'objectes de sessió configurant una galeta a una URL i, a continuació, tornant a fer una sol·licitud per comprovar si la galeta està configurada.

Python 3




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

>

>

Sortida:

session-objects-python-requests

Per a més, visiteu - Objectes de sessió: sol·licituds de Python

Conclusió

Python Request Library és una eina potent per fer sol·licituds HTTP i interactuar amb les API web. En aquest tutorial, vam tractar els conceptes bàsics per enviar sol·licituds GET i POST, gestionar paràmetres i capçaleres i gestionar les dades de resposta. La senzillesa i el disseny intuïtiu de la biblioteca la fan accessible tant per a desenvolupadors principiants com experimentats.