La libreria requests in Python
Obiettivi della pillola
Alla fine di questa pillola saprai:
- comprendere i principali metodi HTTP;
- usare la libreria
requestsper inviare richieste HTTP (GET e POST); - gestire header personalizzati, cookies e sessioni;
- analizzare lo status code e il contenuto della risposta.
Ripasso: i metodi HTTP
I metodi HTTP (o verbs) specificano l’azione che il client vuole eseguire sul server.
GET: richiede dati dal server (es. una pagina o un’API).POST: invia dati al server (es. form o JSON).PUT: aggiorna una risorsa esistente.DELETE: elimina una risorsa.HEAD,PATCH,OPTIONS: usati per casi particolari.
Nota: La libreria
requestssemplifica enormemente l’uso dei metodi HTTP, gestendo internamente connessioni, encoding e redirect.
Richieste GET e POST
Per iniziare: installa la libreria (se necessario) con pip install requests.
import requests
# Esempio GET
r = requests.get("https://api.github.com")
print(r.status_code) # 200 = OK
print(r.headers["content-type"])
print(r.text[:200]) # primi 200 caratteri della risposta
# Esempio POST con parametri form
data = {"utente": "mario", "punteggio": 42}
r = requests.post("https://httpbin.org/post", data=data)
print(r.json()) # analizza risposta JSON
Header personalizzati
Puoi aggiungere header per specificare informazioni al server.
headers = {
"User-Agent": "PillolaRequests/1.0",
"Accept": "application/json"
}
r = requests.get("https://httpbin.org/headers", headers=headers)
print(r.json())
Gestione dei Cookies
Le richieste HTTP possono inviare e ricevere cookies.
# Invio di cookies al server
cookies = {"session_id": "ABC123"}
r = requests.get("https://httpbin.org/cookies", cookies=cookies)
print(r.json())
# Lettura dei cookies ricevuti
print(r.cookies)
Uso delle Sessioni
Le sessioni permettono di mantenere automaticamente i cookies e le impostazioni tra più richieste (come una “navigazione”).
s = requests.Session()
s.headers.update({"User-Agent": "PillolaSession/1.0"})
# Prima richiesta: imposta un cookie
s.get("https://httpbin.org/cookies/set/user/emiliano")
# Seconda richiesta: il cookie e' mantenuto
r = s.get("https://httpbin.org/cookies")
print(r.json())
Analisi della risposta
Ogni oggetto Response include informazioni utili:
r.status_code: codice di stato (200, 404, 500…);r.text: corpo della risposta come stringa;r.json(): decodifica automatica se in formato JSON;r.headers: dizionario degli header ricevuti;r.cookies: eventuali cookie restituiti dal server.
Nota: Controlla sempre
r.okper verificare rapidamente se la richiesta è andata a buon fine (Trueper status 200–399).
In breve: la libreria requests è uno strumento potente e intuitivo per comunicare con API web. Usa sessioni per autenticazioni persistenti e header/cookies per simulare vere richieste da browser.
EC