requests — faire des requêtes HTTP
La bibliothèque requests est l'outil n°1 pour communiquer avec des API en Python :
import requests
# GET — récupérer des données
response = requests.get("https://jsonplaceholder.typicode.com/users/1")
print(response.status_code) # 200
# Convertir la réponse en dictionnaire Python
user = response.json()
print(user["name"]) # Leanne Graham
print(user["email"]) # Sincere@april.biz
Les méthodes principales :
requests.get(url)— récupérer des donnéesrequests.post(url, json=data)— envoyer des donnéesrequests.put(url, json=data)— mettre à jourrequests.delete(url)— supprimer
API REST — les concepts
Une API REST utilise des URLs pour organiser les données. Chaque URL représente une ressource :
import requests
# Liste des articles
articles = requests.get("https://api.example.com/articles").json()
# Un article spécifique
article = requests.get("https://api.example.com/articles/42").json()
# Créer un article
nouveau = requests.post("https://api.example.com/articles", json={
"titre": "Mon article",
"contenu": "Le contenu ici..."
})
print(nouveau.status_code) # 201 (créé)
# Avec authentification (token)
headers = {"Authorization": "Bearer mon_token_secret"}
data = requests.get("https://api.example.com/profil", headers=headers)
print(data.json())
Codes HTTP courants : 200 = OK, 201 = Créé, 404 = Non trouvé, 401 = Non autorisé, 500 = Erreur serveur.
Web scraping avec BeautifulSoup
Le web scraping consiste à extraire des données depuis des pages HTML. BeautifulSoup rend ça simple :
import requests
from bs4 import BeautifulSoup
# Télécharger la page
response = requests.get("https://example.com")
soup = BeautifulSoup(response.text, "html.parser")
# Extraire le titre
titre = soup.find("h1").text
print(titre)
# Tous les liens
for lien in soup.find_all("a"):
href = lien.get("href")
texte = lien.text.strip()
print(f"{texte} → {href}")
# Sélecteurs CSS (comme JavaScript)
prix = soup.select(".product-price")
for p in prix:
print(p.text)
Installation : pip install requests beautifulsoup4
Éthique et bonnes pratiques
Le web scraping est puissant, mais il faut le faire de manière responsable :
- robots.txt — vérifiez
https://site.com/robots.txtavant de scraper. Ce fichier indique ce qui est autorisé. - Rate limiting — attendez entre chaque requête pour ne pas surcharger le serveur :
import time
urls = ["https://example.com/page1", "https://example.com/page2"]
for url in urls:
response = requests.get(url)
# Traiter la réponse...
time.sleep(1) # attendre 1 seconde entre chaque requête
- Préférez les API — si un site offre une API, utilisez-la plutôt que le scraping.
- Conditions d'utilisation — certains sites interdisent le scraping. Lisez les CGU.
Pour aller plus loin
Vous maîtrisez maintenant les fondamentaux de Python. Voici les directions à explorer :
- Web — Django, Flask, FastAPI
- Data science — NumPy, Pandas, Matplotlib
- Machine Learning — scikit-learn, TensorFlow, PyTorch
- Automatisation — subprocess, schedule, Selenium
Références complètes : W3Schools Python · Python.org (docs FR)
Le couteau suisse est ouvert
Python ouvre des portes au-delà du web — data science, intelligence artificielle, automatisation système. C'est le couteau suisse du développeur moderne.
Avec HTML/CSS/JS pour le front, PHP pour le back web, et Python pour tout le reste, vous avez un arsenal complet. Chaque langage a sa spécialité, et vous savez maintenant lire, modifier et débugger dans chacun d'eux.
La suite ? Choisissez votre spécialisation — web, data, IA, automatisation — et creusez. Les fondations sont là. Construisez.
requests — making HTTP requests
The requests library is the #1 tool for communicating with APIs in Python:
import requests
# GET — fetch data
response = requests.get("https://jsonplaceholder.typicode.com/users/1")
print(response.status_code) # 200
# Convert the response to a Python dictionary
user = response.json()
print(user["name"]) # Leanne Graham
print(user["email"]) # Sincere@april.biz
Main methods:
requests.get(url)— fetch datarequests.post(url, json=data)— send datarequests.put(url, json=data)— updaterequests.delete(url)— delete
REST APIs — the concepts
A REST API uses URLs to organize data. Each URL represents a resource:
import requests
# List of articles
articles = requests.get("https://api.example.com/articles").json()
# A specific article
article = requests.get("https://api.example.com/articles/42").json()
# Create an article
new = requests.post("https://api.example.com/articles", json={
"title": "My article",
"content": "The content here..."
})
print(new.status_code) # 201 (created)
# With authentication (token)
headers = {"Authorization": "Bearer my_secret_token"}
data = requests.get("https://api.example.com/profile", headers=headers)
print(data.json())
Common HTTP codes: 200 = OK, 201 = Created, 404 = Not Found, 401 = Unauthorized, 500 = Server Error.
Web scraping with BeautifulSoup
Web scraping means extracting data from HTML pages. BeautifulSoup makes it easy:
import requests
from bs4 import BeautifulSoup
# Download the page
response = requests.get("https://example.com")
soup = BeautifulSoup(response.text, "html.parser")
# Extract the title
title = soup.find("h1").text
print(title)
# All links
for link in soup.find_all("a"):
href = link.get("href")
text = link.text.strip()
print(f"{text} → {href}")
# CSS selectors (like JavaScript)
prices = soup.select(".product-price")
for p in prices:
print(p.text)
Installation: pip install requests beautifulsoup4
Ethics and best practices
Web scraping is powerful, but it must be done responsibly:
- robots.txt — check
https://site.com/robots.txtbefore scraping. This file indicates what's allowed. - Rate limiting — wait between requests to avoid overloading the server:
import time
urls = ["https://example.com/page1", "https://example.com/page2"]
for url in urls:
response = requests.get(url)
# Process the response...
time.sleep(1) # wait 1 second between each request
- Prefer APIs — if a site offers an API, use it instead of scraping.
- Terms of service — some sites prohibit scraping. Read the ToS.
Going further
You now master the fundamentals of Python. Here are directions to explore:
- Web — Django, Flask, FastAPI
- Data science — NumPy, Pandas, Matplotlib
- Machine Learning — scikit-learn, TensorFlow, PyTorch
- Automation — subprocess, schedule, Selenium
Full references: W3Schools Python · Python.org (docs)
The Swiss army knife is open
Python opens doors beyond the web — data science, artificial intelligence, system automation. It's the modern developer's Swiss army knife.
With HTML/CSS/JS for the front, PHP for the web back-end, and Python for everything else, you have a complete arsenal. Each language has its specialty, and you now know how to read, modify and debug in each of them.
What's next? Choose your specialization — web, data, AI, automation — and dig in. The foundations are there. Keep building.
Copiez ce prompt dans Claude ou ChatGPT :
Écris un script Python qui utilise l'API OpenWeather pour récupérer la météo d'une ville. Affiche la température, l'humidité et la description. Gère les erreurs (ville introuvable, problème réseau).
time.sleep(1) entre les requêtes de scraping ?