Ceci est une ancienne révision du document !
Requêtes HTTP en Python
import urllib.request import json req = urllib.request.Request("https://adresse.com") with urllib.request.urlopen(req) as f: response = f.read() data = json.loads(response.decode('utf-8')) print(data) # dictionnaire de la réponse JSON
Requête POST:
post_data = { "title": box['title'], "parent_folder": "-1" } # avec des données, la requête est automatiquement une POST req = urllib.request.Request("https://url.com/form.php", urllib.parse.urlencode(post_data).encode('ascii')) with urllib.request.urlopen(req) as f: response = f.read()
Avec une authentification basique:
import base64 credentials = { "Authorization": b'Basic ' + base64.b64encode("user:pass".encode()) } req = urllib.request.Request("https://adresse.com", headers=credentials) # ou req = urllib.request.Request("https://url.com/form.php", urllib.parse.urlencode(post_data).encode('ascii'), credentials)
Encoder une URL
urllib.parse.quote(url)
Sessions
Avec Requests.
session = requests.Session() session.headers['Accept'] = 'application/vnd.github.v3+json' session.auth = ("user", "pass") r = session.get(url) if r.status_code != 200: print("Got HTTP response {}: {}".format(r.status_code, r.json()['message'])) else: print(r.json()) session.close()
Changer le User-Agent
from urllib.request import urlopen, Request urlopen(Request(url, headers={'User-Agent': 'Mozilla'}))