Scraping des député·e·s de l’Assemblée Nationale.
Script pour scraper les député·e·s français (Nom, Région, Département, Email, Groupe, Circonscription) depuis le site de l'Assemblée nationale.
Click to collapse/expand
Scraping-Deputes-France: Un outil simple et efficace pour récupérer automatiquement les informations publiques des députés français : Noms, Régions, Départements, Emails, Groupes parlementaires et Circonscriptions — exportables en texte, JSON ou CSV.
L'idée de ce projet est née d'un besoin simple : pouvoir récupérer facilement les emails des députés d'une région donnée pour leur envoyer des mails groupés, notamment dans un cadre politique ou citoyen. Que ce soit pour interpeller les élus sur une cause, faire des demandes officielles, ou simplement avoir accès aux coordonnées publiques, cet outil automatise cette tâche.
J'ai notamment utilisé Scraping-Deputes-France dans le cadre du projet LettreCitoyenne-Narcotrafic, une initiative citoyenne visant à faciliter l'expression de l'opposition à la proposition de loi intitulée "Proposition de loi visant à sortir la France du piège du narcotrafic". Ce site permet aux citoyens de contacter directement leurs députés pour exprimer leurs préoccupations sur les implications de cette loi sur les libertés individuelles.
- 🔍 Scraping des députés : Récupération automatique des noms, départements, emails (adresse officielle privilégiée), groupes et circonscriptions — les 577 député·e·s.
- 📍 Sélection par région : 24 régions couvertes (
--region all), outre-mer et Français de l'étranger inclus. - 🚀 Multithreading : Accélération du scraping grâce à l'exécution parallèle (tri déterministe garanti).
- 🛡️ Robustesse : Session HTTP avec UA navigateur, retries sur erreurs transitoires (429/5xx,
Retry-After, backoff exponentiel), alerte si la structure du site change. - 📊 Affichage optimisé : Résultats sous forme de texte structuré ou tableau ASCII.
- 💾 Exportation : Formats texte, JSON et CSV, dans un fichier ou sur stdout (diagnostics sur stderr, codes de sortie exploitables en script).
- 🧪 Qualité : suite de tests offline + smoke test hebdomadaire en CI qui détecte un redesign du site.
Avant de commencer l'installation, assurez-vous de remplir les prérequis suivants.
-
Python 3: Assurez-vous que Python 3 est installé sur votre système.
-
Dépendances: Installez les bibliothèques requises via pip en utilisant le fichier
requirements.txt.
⚠️ Note: Scraping-Deputes-France a été testé avec Python 3.11.10 sous Linux. Bien qu'il puisse fonctionner avec d'autres versions, la compatibilité n'est garantie que pour cette configuration.
- Cloner le dépôt via Git:
git clone https://github.com/franckferman/Scraping-Deputes-France.git- Installation sans Git (téléchargement direct): Si vous ne souhaitez pas cloner tout le dépôt et avez juste besoin du script, vous pouvez le télécharger directement:
curl -O https://raw.githubusercontent.com/franckferman/Scraping-Deputes-France/stable/Scraping-Deputes-France.pyAssurez-vous d'adapter les commandes en fonction de la configuration de votre installation de Scraping-Deputes-France.
Pour afficher l'aide complète et explorer les fonctionnalités du script:
python3 Scraping-Deputes-France.py --help| Tâche | Commande |
|---|---|
| Scraper les députés des régions par défaut (Île-de-France & PACA) | python3 Scraping-Deputes-France.py |
| Scraper uniquement la région Bretagne | python3 Scraping-Deputes-France.py --region Bretagne |
| Scraper plusieurs régions spécifiques | python3 Scraping-Deputes-France.py --region Bretagne Ile-de-France |
| Scraper toutes les régions (24, dont outre-mer & Français de l'étranger) | python3 Scraping-Deputes-France.py --region all |
| Lister toutes les régions valides | python3 Scraping-Deputes-France.py --list-regions |
| Tester rapidement sur 10 députés | python3 Scraping-Deputes-France.py --limit 10 |
| Tâche | Commande |
|---|---|
| Récupérer uniquement les noms et emails | python3 Scraping-Deputes-France.py --fields nom,email |
Champs disponibles : nom, region, departement, email, groupe, circonscription |
python3 Scraping-Deputes-France.py --fields nom,departement |
| Afficher les résultats sous forme de tableau ASCII | python3 Scraping-Deputes-France.py --table |
| Afficher les emails sans formatage ni séparateurs | python3 Scraping-Deputes-France.py --fields email --barefields --no-separator |
| Tâche | Commande |
|---|---|
| Activer le multithreading avec 5 threads | python3 Scraping-Deputes-France.py --threads 5 |
| Définir un délai de 2 secondes entre les tentatives en cas d'échec | python3 Scraping-Deputes-France.py --retries 5 --delay 2 --timeout 15 |
| Tâche | Commande |
|---|---|
| Sauvegarder les résultats dans un fichier texte | python3 Scraping-Deputes-France.py --output deputes.txt |
| Exporter en JSON | python3 Scraping-Deputes-France.py --format json --output deputes.json |
| Exporter en CSV | python3 Scraping-Deputes-France.py --format csv --output deputes.csv |
| Sauvegarder uniquement les emails dans un fichier | python3 Scraping-Deputes-France.py --fields email --barefields --output emails.txt |
Codes de sortie :
0succès ·1erreur de configuration (région/champ invalide, threads < 1) ·2échec global (0 député récupéré). Les messages[INFO]/[WARNING]/[ERROR]passent par stderr — stdout reste propre pour être pipé (json,csv).
L'outil Scraping-Deputes-France permet de récupérer des informations publiques disponibles sur le site de l'Assemblée nationale. Son utilisation doit impérativement respecter les lois et réglementations en vigueur dans votre pays ou région.
L'utilisation de cet outil est strictement interdite pour :
- Envoyer des emails de masse non sollicités (spam) aux députés.
- Harceler, menacer ou nuire à toute personne ou entité.
- Mener des actions illégales telles que la collecte abusive de données ou leur diffusion sans consentement légal.
- Automatiser du lobbying abusif ou fausser le débat démocratique par des actions coordonnées non transparentes.
Le créateur de Scraping-Deputes-France ne saurait être tenu responsable de toute utilisation abusive ou illégale de cet outil. En téléchargeant et en exécutant ce script, vous assumez l'entière responsabilité de votre usage et vous engagez à respecter les lois en vigueur.
🔹 En utilisant Scraping-Deputes-France, vous reconnaissez avoir lu, compris et accepté cette clause de non-responsabilité.
