- Che cosa sono le richieste Python?
- Perché utilizzare le richieste Python?
- Come installare le richieste Python?
- Effettuare richieste Get & Post
- Passaggio di parametri nell'URL
- Codice di stato
- Contenuto della risposta
- Caricamento di file in più parti
- Cookie e intestazioni
- Oggetto sessione
- Errori ed eccezioni
Che cosa sono le richieste Python?
Le richieste Python sono state scritte da Kenneth Reitz e concesse in licenza con apache 2.0. È una libreria HTTP a misura d'uomo, come menzionato nella pagina della documentazione ufficiale. È facile da usare e fondamentalmente utilizzato per effettuare tutti i tipi di richieste HTTP. Di seguito sono riportate alcune funzionalità avanzate fornite con le richieste:- Mantenere vivo e pool di connessioni
- Domini e URL internazionali
- Sessioni con persistenza dei cookie
- Verifica SSL in stile browser
- Decodifica automatica dei contenuti
- Autenticazione di base / digest
- Eleganti cookie chiave / valore
- Decompressione automatica
- Corpi di risposta Unicode
- Supporto proxy HTTP
- Caricamenti di file in più parti
- Download in streaming
- Timeout di connessione
- Richieste in blocchi
Perché utilizzare le richieste Python?
Quando si tratta del motivo per cui utilizziamo le richieste python? il motivo è piuttosto semplice. Durante l'utilizzo delle richieste Python, non è necessario aggiungere manualmente le query ai tuoi URL e ai dati dei post con codifica del modulo. Semplifica il nostro lavoro quando si effettuano richieste http di qualsiasi tipo.Ora che abbiamo familiarità con le richieste python e perché le usiamo in python, proviamo a capire come installeremo le richieste sul nostro progetto o sistema.Come installare le richieste Python?
Anche la parte di installazione è molto semplice. Se hai installato pipenv sul tuo sistema, puoi semplicemente eseguire il seguente comando nel terminale.$ pip richieste di installazione
Questo installerà la libreria delle richieste sul tuo sistema. C'è un altro approccio per installare le richieste. Se stai usando pycharm, puoi aggiungere richieste sull'interprete del progetto nelle impostazioni. Ha lo stesso scopo del terminale in caso di installazione della libreria sul nostro progetto.Ora che abbiamo finito con l'installazione, proviamo a capire come faremo ottenere e inviare richieste in python.Come effettuare richieste Get & Post?
Ottieni richiesta è fondamentalmente utilizzato per richiedere i dati dal server. Di seguito è riportata la sintassi per effettuare una richiesta get.richieste di importazione res = requests.get ('url') #res è l'oggetto risposta qui.La richiesta post viene utilizzata per inviare i dati da elaborare al server. Di seguito è riportata la sintassi per effettuare una richiesta di post.
richieste di importazione payload = {'key1': 'value1'} res = requests.post ('url', data = payload)Ora che sappiamo come possiamo effettuare richieste get e post, diamo un'occhiata a come possiamo passare parametri all'URL usando la richiesta get.
Passaggio di parametri in un URL
Passare parametri in un URL è semplice come effettuare una richiesta get. Di seguito è riportato un esempio per passare i parametri all'URL.richieste di importazione payload = {'key1': 'value1', 'key2': 'value2'} res = requests.get ('url', params = payload) print (res.url) #questo stamperà l'URL con i parametri passato attraverso la richiesta get.
Codice di stato
Possiamo controllare anche il codice di stato, di seguito è riportato il codice per controllare il codice di stato:
richieste di importazione res = requests.get ('url') print (res.status_code ())Se il codice restituisce 200, significa che non ci sono errori e la richiesta va bene. Se facciamo una cattiva richiesta, il codice restituirà un codice come 404 o 505 che solleverà un errore http.
Contenuto della risposta
Possiamo anche leggere il contenuto della risposta del server. La libreria decodificherà automaticamente il contenuto dal server.richieste di importazione res = requests.get ('url') print (res.content)
Requests ha anche un decoder json integrato.
come gestire i popup nel webdriver selenio
richieste di importazione res = requests.get ('url') print (res.json ()) #questo otterrà la risposta in formato json
Caricamento di file in più parti
È molto facile caricare file in più parti utilizzando le richieste.richieste di importazione files = {'file': open ('filename', 'rb')} res = requests.post ('url', files = files) print (res.text)Per inviare più file, specificheremo più file nel parametro files.
Cookie e intestazioni
Possiamo visualizzare le intestazioni di risposta e i cookie del server utilizzando l'oggetto risposta. Di seguito è riportato il codice per visualizzare le intestazioni del server.richieste di importazione res = requests.get ('url') print (res.headers)Possiamo anche passare intestazioni personalizzate all'URL. Diamo un'occhiata al codice.
richieste di importazione headers = {'key1': 'value1'} res = requests.get ('url', headers = headers) print (res.headers)Richieste non cambia il suo comportamento in base alle intestazioni personalizzate. Sono semplicemente passati alla richiesta finale. biscotti possono essere visualizzati anche utilizzando l'oggetto risposta.
richieste di importazione #per passare i nostri cookie possiamo utilizzare il parametro cookies cookies = dict (cookies = 'working') res = requests.get ('url', cookies = cookies) print (res.text)
I cookie vengono restituiti in un RequestCookieJar, che agisce come un dizionario ma offre anche un'interfaccia più completa, adatta per l'uso su più domini o percorsi.
Oggetto sessione
L'oggetto sessione consente di mantenere determinati parametri nelle richieste.- Persiste i cookie in tutte le richieste effettuate dall'istanza della sessione
- Usa il pool di connessioni urllib3
- Incrementa la performance
- Un oggetto sessione ha tutti i metodi delle principali richieste API
s = requests.session () s.get ('url') res = s.get ('url') print (res.text)
Errori ed eccezioni
Di seguito sono riportati gli errori e le eccezioni che vengono sollevati in una richiesta python.- In caso di problemi di rete, le richieste solleveranno un'eccezione ConnectionError.
- Response.raise_for_status () solleverà un errore HTTP quando c'è un codice di stato non riuscito.
- Se c'è un timeout, solleverà un'eccezione Timeout
- L'eccezione TooManyRedirects viene sollevata se la richiesta supera il numero configurato del numero massimo di reindirizzamenti.