Découvrez une démonstration complète de l'application SmartWebScraper-CV en action :
- Python 3.9 ou supérieur
- 8+ GB RAM (16 GB recommandé)
- GPU NVIDIA optionnel (améliore les performances)
# Clonage du projet
git clone https://github.com/ZIADEA/SmartWebScraper-CV.git
cd SmartWebScraper-CV/LocalApp/SMARTWEBSCRAPPER-CV
# Environnement virtuel (optionnel)
python -m venv venv
source venv/bin/activate # Linux/Mac
# ou venv\Scripts\activate # Windows
# Dépendances
pip install -r requirements.txt
# Modèles NLP
python -c "import nltk; nltk.download('punkt'); nltk.download('stopwords')"
python -m spacy download fr_core_news_sm
# Detectron2 (voir guides spécifiques selon votre OS)
pip install 'git+https://github.com/facebookresearch/detectron2.git'- Créer le fichier .env avec votre clé API Gemini :
GEMINI_API_KEY=your-gemini-api-key
ADMIN_EMAIL=admin@example.com
ADMIN_PASSWORD=your_password- Installer et lancer Ollama (optionnel) :
# Télécharger depuis https://ollama.com/
ollama run mistral- Lancer l'application :
python run.py- Accéder aux interfaces :
- Interface utilisateur : http://localhost:5000
- Interface admin : http://localhost:5000/admin/login
La documentation complète est disponible sur ReadTheDocs :
- ⚙️ Installation Locale
- 🚀 Distribution et Support🎯 Introduction et Contexte](docs/source/introduction/contexte.rst)
- 📊 Acquisition des Données
- 🏷️ Annotation et Dataset
- 🤖 Modélisation Computer Vision
- 📝 Traitement NLP
- 🏗️ Architecture Application
- [# SmartWebScraper-CV
Application intelligente d'annotation de pages web par Computer Vision, OCR, NLP et LLM
Projet de fin d'année - ENSAM Meknès, Filière IATD-SI
Auteurs : DJERI-ALASSANI OUBENOUPOU & EL MAJDI WALID
Encadrant : Professeur Tawfik MASROUR
Date : 16 Juin 2025
SmartWebScraper-CV révolutionne l'extraction de contenu web en combinant plusieurs technologies d'IA pour analyser visuellement les pages web, contournant ainsi les limitations du scrapping traditionnel (obfuscation HTML, JavaScript, contenu dynamique).
- 🖼️ Capture Intelligente : Screenshot automatique avec gestion du contenu dynamique
- 🎯 Détection Automatique : 18 zones fonctionnelles détectées (header, content, ads, etc.)
- 📝 OCR Avancé : Extraction précise du texte avec PaddleOCR
- 🧠 Analyse NLP : Résumé, Q&A, extraction d'entités avec NLTK/spaCy
- 🤖 IA Générative : Intégration Gemini API et Mistral (Ollama)
- 👨💼 Double Interface : Utilisateur final + Administrateur pour validation
flowchart TD
A[URL Web] --> B[Capture Selenium/Playwright]
B --> C[Détection Computer Vision]
C --> D[Zones Annotées]
D --> E[Extraction OCR]
E --> F[Traitement NLP]
F --> G[Interface Utilisateur]
G --> H[Feedback & Amélioration]
H --> I[Fine-tuning Modèle]
| Domaine | Technologies |
|---|---|
| Computer Vision | Detectron2, Faster R-CNN, annotations COCO |
| OCR | PaddleOCR, prétraitement OpenCV |
| NLP | NLTK, spaCy, TF-IDF, Word2Vec, clustering |
| LLM | Gemini API, Mistral via Ollama |
| Web Framework | Flask, HTML5 Canvas, interface responsive |
| Web Scraping | Selenium, undetected-chromedriver, Playwright |
| Métrique | Score | Description |
|---|---|---|
| mAP Détection | 41.6% | Précision moyenne détection d'objets |
| Qualité OCR | >90% | Taux d'extraction sur texte net |
| Temps Traitement | 4-6s | Capture + détection + OCR + NLP |
| Classes Détectées | 18+1 | Zones fonctionnelles web |
- Python 3.9-3.10
- 8+ GB RAM (16 GB recommandé)
- GPU NVIDIA optionnel (améliore les performances)
# Clonage du projet
git clone https://github.com/ZIADEA/SmartWebScraper-CV.git
cd SmartWebScraper-CV/LocalApp/SMARTWEBSCRAPPER-CV
# Installation automatique
python setup.py# Environnement virtuel
python -m venv venv
source venv/bin/activate # Linux/Mac
# ou venv\Scripts\activate # Windows
# Dépendances
pip install -r requirements.txt
# Modèles NLP
python -c "import nltk; nltk.download('punkt'); nltk.download('stopwords')"
python -m spacy download fr_core_news_sm
# Detectron2
pip install 'git+https://github.com/facebookresearch/detectron2.git'- Copier le fichier de configuration :
cp .env.example .env- Configurer les clés API dans
.env:
GEMINI_API_KEY=your-gemini-api-key
SERPAPI_KEY=your-serpapi-key
OLLAMA_BASE_URL=http://localhost:11434- Lancer l'application :
python run.py- Accéder aux interfaces :
- Interface utilisateur : http://localhost:5000
- Interface admin : http://localhost:5000/admin/login
La documentation complète est disponible sur ReadTheDocs :
- 🎯 Introduction et Contexte
- 📊 Acquisition des Données
- 🏷️ Annotation et Dataset
- 🤖 Modélisation Computer Vision
- 📝 Traitement NLP
- 🏗️ Architecture Application
- ⚙️ Guide d'Installation Locale
- 🔄 Workflow Complet
- 🚀 Distribution et Support
- Soumission d'URL : Entrez l'URL de la page à analyser
- Capture Automatique : Screenshot et détection des zones
- Sélection des Zones : Choisissez les éléments à analyser
- Extraction de Contenu : OCR et traitement NLP automatique
- Interaction Intelligente : Questions, résumés, analyses
- Validation d'Annotations : Contrôle qualité des prédictions
- Correction Manuelle : Amélioration des données d'entraînement
- Fine-tuning : Relancement de l'entraînement avec nouvelles données
- Métriques : Suivi des performances du système
# Exemple d'utilisation de l'API
import requests
# Capture et analyse d'une page
response = requests.post('http://localhost:5000/api/analyze',
json={'url': 'https://example.com'})
result = response.json()
# result contient : zones détectées, texte extrait, métadonnées# Construction de l'image
docker build -t smartwebscraper .
# Lancement avec volumes persistants
docker run -p 5000:5000 -v $(pwd)/data:/app/data smartwebscraper- 🔍 Analyse UX/UI : Détection automatique des zones publicitaires
- 📚 Recherche Académique : Constitution de corpus textuels annotés
- 🤖 Entraînement IA : Dataset COCO de pages web réelles
- 📊 Veille Concurrentielle : Extraction automatisée de contenu
- ♿ Accessibilité : Amélioration de la navigation pour malvoyants
| Erreur | Solution |
|---|---|
CUDA out of memory |
Définir FORCE_CPU_MODE=True dans .env |
ModuleNotFoundError: detectron2 |
Réinstaller via GitHub : pip install 'git+https://github.com/facebookresearch/detectron2.git' |
spaCy model not found |
python -m spacy download fr_core_news_sm |
PaddleOCR download failed |
Vérifier connexion Internet et réessayer |
# Mode CPU forcé (machines limitées)
export FORCE_CPU_MODE=True
# Logs détaillés pour debug
export FLASK_DEBUG=1
python run.py 2>&1 | tee logs/debug.logNous accueillons les contributions ! Voici comment participer :
- Fork le projet
- Créer une branche (
git checkout -b feature/amélioration) - Commit vos changements (
git commit -am 'Ajout nouvelle fonctionnalité') - Push vers la branche (
git push origin feature/amélioration) - Créer une Pull Request
Utilisez les GitHub Issues avec :
- Description détaillée du problème
- Étapes de reproduction
- Logs d'erreur
- Configuration système
- Support multilingue complet
- API REST publique
- Interface mobile responsive
- Apprentissage par renforcement (RLHF)
- Dashboard analytics temps réel
- Intégration cloud (AWS, GCP)
- Mode batch processing
- Plugin navigateur
- Support vidéos web
Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.
- ENSAM Meknès - Cadre académique et infrastructure
- Professeur Tawfik MASROUR - Encadrement et conseils
- Facebook AI Research - Detectron2 framework
- Google - Gemini API et modèles de base
- Communauté Open Source - Outils et bibliothèques
- DJERI-ALASSANI OUBENOUPOU - djeryala@gmail.com
- Documentation - ReadTheDocs
🎓 ENSAM Meknès - IATD-SI 2025
Ingénierie de l'Intelligence Artificielle et des Technologies de la Donnée pour les Systèmes Industriels
