Skip to content

Samy440/django_scraper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🤖 Agent IA de Scraping d'Annuaires d'Entreprises

Application Django avec agent IA intelligent pour scraper automatiquement les données d'entreprises depuis des annuaires en ligne.

✨ Fonctionnalités

  • Scraping intelligent : L'agent IA détecte automatiquement la structure des pages et extrait les données
  • Navigation automatique : Gestion automatique de la pagination
  • Extraction de données :
    • Nom de l'entreprise
    • Catégorie/Secteur
    • Email
    • Téléphone
    • Site web (URL)
    • Localisation
  • Export Excel : Génération automatique de fichiers Excel téléchargeables
  • Interface moderne : Interface web intuitive et responsive

📋 Prérequis

  • Python 3.8+
  • pip

🚀 Installation

  1. Cloner ou télécharger le projet

  2. Créer un environnement virtuel (recommandé) :

python -m venv venv source venv/bin/activate # Sur Linux/Mac # ou venv\Scripts\activate # Sur Windows
  1. Installer les dépendances :
pip install -r requirements.txt
  1. Créer les migrations :
python manage.py makemigrations python manage.py migrate
  1. Créer un superutilisateur (optionnel, pour l'admin Django) :
python manage.py createsuperuser
  1. Lancer le serveur de développement :
python manage.py runserver
  1. Accéder à l'application : Ouvrez votre navigateur à l'adresse : http://127.0.0.1:8000/

📖 Utilisation

  1. Soumettre une URL :

    • Entrez l'URL de l'annuaire d'entreprises dans le champ prévu
    • Cliquez sur "🚀 Démarrer le Scraping"
  2. Suivre le progrès :

    • Le statut du scraping s'affiche en temps réel
    • Vous pouvez voir le nombre d'entreprises trouvées au fur et à mesure
  3. Télécharger les résultats :

    • Une fois le scraping terminé, un bouton de téléchargement apparaît
    • Cliquez pour télécharger le fichier Excel avec toutes les données
  4. Consulter les sessions :

    • Toutes les sessions de scraping sont enregistrées
    • Vous pouvez consulter les détails de chaque session
    • Les fichiers Excel peuvent être téléchargés à tout moment

🏗️ Structure du Projet

scraping project/ ├── scraper/ # Application principale │ ├── models.py # Modèles de données (ScrapingSession, Company) │ ├── views.py # Vues Django │ ├── ai_agent.py # Agent IA de scraping │ ├── excel_generator.py # Générateur de fichiers Excel │ ├── urls.py # URLs de l'application │ └── admin.py # Configuration admin Django ├── scraping_project/ # Configuration Django │ ├── settings.py # Paramètres │ └── urls.py # URLs principales ├── templates/ # Templates HTML │ └── scraper/ │ ├── base.html │ ├── index.html │ └── session_detail.html ├── requirements.txt # Dépendances Python └── manage.py # Script de gestion Django 

🔧 Configuration

Modifier le nombre de pages à scraper

Dans scraper/views.py, ligne 57, modifiez le paramètre max_pages :

companies_data = agent.scrape_paginated(session.url, max_pages=10)

Personnaliser l'extraction

L'agent IA dans scraper/ai_agent.py peut être personnalisé pour :

  • Améliorer la détection des conteneurs d'entreprises
  • Ajouter de nouveaux patterns d'extraction
  • Gérer des formats spécifiques d'annuaires

📦 Dépendances

  • Django : Framework web
  • BeautifulSoup4 : Parsing HTML
  • requests : Requêtes HTTP
  • openpyxl : Génération de fichiers Excel
  • lxml : Parser XML/HTML rapide

⚠️ Notes importantes

  • Respect des robots.txt : Assurez-vous de respecter les conditions d'utilisation des sites web
  • Rate limiting : L'application inclut des délais pour éviter de surcharger les serveurs
  • Données personnelles : Respectez le RGPD et les lois sur la protection des données

🐛 Dépannage

Le scraping ne trouve pas d'entreprises

  1. Vérifiez que l'URL est correcte et accessible
  2. Certains sites peuvent bloquer les requêtes automatisées
  3. L'agent IA peut avoir besoin d'ajustements pour certains formats spécifiques

Erreur CSRF

Si vous rencontrez des erreurs CSRF, assurez-vous que :

  • Les cookies sont activés dans votre navigateur
  • Vous accédez à l'application via http://127.0.0.1:8000/ (pas localhost)

Problèmes de migration

Si les migrations échouent :

python manage.py makemigrations scraper python manage.py migrate

📝 Licence

Ce projet est fourni à des fins éducatives et de démonstration.

🤝 Contribution

Les contributions sont les bienvenues ! N'hésitez pas à :

  • Signaler des bugs
  • Proposer des améliorations
  • Ajouter de nouvelles fonctionnalités

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published