Skip to content

Latest commit

 

History

14 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Contributors Forks Stargazers License

Scraping-Deputes-France Logo

🏛️ Scraping-Deputes-France

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.

📜 Table of Contents

Click to collapse/expand
  1. 📖 About
  2. 🛠️ Installation
  3. 🎮 Usage
  4. ⚖️ Legal Disclaimer

📖 About

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.

⚙️ Fonctionnalités principales de Scraping-Deputes-France

  • 🔍 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.

Scraping-Deputes-France Demo Screenshot

(🔼 Back to top)

🚀 Installation

Avant de commencer l'installation, assurez-vous de remplir les prérequis suivants.

Prérequis

  1. Python 3: Assurez-vous que Python 3 est installé sur votre système.

  2. 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.

Méthodes d'installation

  1. Cloner le dépôt via Git:
git clone https://github.com/franckferman/Scraping-Deputes-France.git
  1. 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.py

(🔼 Back to top)

🎮 Usage

Assurez-vous d'adapter les commandes en fonction de la configuration de votre installation de Scraping-Deputes-France.

Démarrage rapide

Pour afficher l'aide complète et explorer les fonctionnalités du script:

python3 Scraping-Deputes-France.py --help

Exemples de commandes

🔍 Scraper les informations des députés d'une région spécifique:

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

📄 Personnalisation des données récupérées:

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

⚡ Optimisation avec le multithreading:

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

💾 Export des résultats:

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 : 0 succès · 1 erreur 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).

(🔼 Back to top)

⚖️ Legal Disclaimer

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.

⚠️ Si vous avez un doute sur la légalité de votre usage, consultez un juriste ou une autorité compétente avant d’utiliser cet outil.

🔹 En utilisant Scraping-Deputes-France, vous reconnaissez avoir lu, compris et accepté cette clause de non-responsabilité.

(🔼 Back to top)

Releases

Used by

Contributors

Languages