Requests è una libreria di python che ci permette di effettuare una richiesta http/https in modo semplice ed immediato basata su urllib3.

Tale modulo è compatibile anche con python 2, tuttavia pure il creatore consiglia di utilizzare python 3. Usiamo pip per installarlo, quindi apriamo il terminale come amministratore e digitiamo pip install requests.

Effettuare una richiesta

Come già accennato in precedenza, questa libreria, ci permette di creare una richiesta in modo semplice e veloce. Iniziamo subito quindi importando il modulo

>>> import requests

Ora proviamo ad effettuare una richiesta:

>>> r = requests.get('https://pythonpertutti.it')

La richiesta genera in uscita un oggetto "Risposta", perciò r in questo caso sarà un oggetto che contiente la risposta alla richiesta effettuata precedentemente.

Come ogni oggetto avrà degli attributi tra cui lo status_code che ci permette di visualizzare lo stato della pagina richiesta:

>>> r.status_code
200

Il codice 200 sta ad indicare che la pagina ok.

Visualizzare il testo della riposta

Andiamo ad estrarre il contenuto della pagina:

>>> r.text
<html>...</html>

Visualizzare l'header della risposta

Sempre con questa libreria possiamo andare a vedere l'header della risposta così:

>>> r.headers
{'Date': 'Tue, 22 Jan 2019 14:12:39 GMT', 'Content-Type': 'text/html; charset=utf-8', 'Server': 'nginx/1.10.3', 'X-Frame-Options': 'SAMEORIGIN', 'Transfer-Encoding': 'chunked', 'Set-Cookie': 'csrftoken=jMea0oqDfnccwA2VQFUZ3eODYGfzTMaAixbmr8Lv8b1HI7lBo6DnX3mDxLWC6Oqp; expires=Tue, 21-Jan-2020 14:12:39 GMT; Max-Age=31449600; Path=/', 'Content-Language': 'it', 'Connection': 'keep-alive', 'Content-Encoding': 'gzip', 'Vary': 'Cookie, Accept-Language'}

Si può inoltre accedere ad ogni elemento presente nell'header tramite un dizionario:

>>> r.headers['Content-Type']
'text/html; charset=utf-8'

Gestire dati JSON

Requests permette inoltre di gestire dati in formato json in questo modo.

>>> import requests
>>> r.get('https://httpbin.org/get')
>>> r.json
{
  "args": {},
  "headers": {
    "Accept": "application/json",
    "Accept-Encoding": "gzip, deflate, br",
    "Accept-Language": "it-IT,it;q=0.9,en-US;q=0.8,en;q=0.7",
    "Connection": "close",
    "Cookie": "_gauges_unique_hour=1; _gauges_unique_day=1; _gauges_unique_month=1; _gauges_unique_year=1; _gauges_unique=1",
    "Host": "httpbin.org",
    "Referer": "https://httpbin.org/",
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36"
  },
  "origin": "TUO_IP",
  "url": "https://httpbin.org/get"
}

Eseguire una richiesta POST

Con questa libreria è possibile anche inviare delle richieste POST:

>>> r = requests.post('https://httpbin.org/post')

Si possono anche aggiungere come parametri opzionali i dati che si vogliono passare tramite la richiesta POST:

>>> data = {"nome_dato":"valore_dato",
"nome_dato2":"valore_dato2"}
>>> r = requests.post('https://httpbin.org/post', data=data)
>>> r.text { "args": {}, "data": "", "files": {}, "form": { "nome_dato1": "valore_dato1", "nome_dato2": "valore_dato2" }, ...
...

Condividi sui Social