Spaces:
Sleeping
Sleeping
| # FAQ - Scrap-Dji : Questions et Réponses | |
| ## 📊 Que puis-je faire avec les données scrapées ? | |
| ### Fonctionnalités principales : | |
| 1. **Recherche sémantique** : Trouver du contenu par similarité de sens | |
| 2. **Recherche par mots-clés** : Recherche classique par termes | |
| 3. **Filtrage géographique** : Contenus par pays/région africaine | |
| 4. **Analyse temporelle** : Évolution des sujets dans le temps | |
| 5. **Détection de langues** : Contenus en français, anglais, langues locales | |
| 6. **Analyse de sentiments** : Positif/négatif/neutre | |
| 7. **Extraction d'entités** : Personnes, organisations, lieux | |
| 8. **Génération de résumés** : Synthèse automatique des articles | |
| 9. **Détection de fake news** : Analyse de crédibilité | |
| 10. **API REST** : Interface pour applications tierces | |
| ### Exemples d'utilisation : | |
| - **Journaliste** : Recherche d'articles sur un sujet spécifique | |
| - **Chercheur** : Analyse de tendances médiatiques africaines | |
| - **Développeur** : API pour application mobile/web | |
| - **Analyste** : Rapports sur l'actualité africaine | |
| ## 📋 Quelles données sont récupérées ? | |
| ### Données extraites : | |
| ```json | |
| { | |
| "titre": "Titre de l'article", | |
| "texte": "Contenu complet nettoyé", | |
| "source_url": "URL d'origine", | |
| "pays": "Sénégal", | |
| "langue": "fr", | |
| "type_document": "article|social|pdf|video", | |
| "auteur": "Nom de l'auteur", | |
| "date_publication": "2024-01-15", | |
| "tags": ["politique", "économie"], | |
| "images": ["url1", "url2"], | |
| "liens_externes": ["url1", "url2"], | |
| "métadonnées": { | |
| "longueur_texte": 1500, | |
| "nombre_mots": 250, | |
| "sentiment": "positif", | |
| "crédibilité": 0.85 | |
| } | |
| } | |
| ``` | |
| ### Types de sources supportées : | |
| - **Sites d'actualités** : Articles, éditoriaux, interviews | |
| - **Réseaux sociaux** : Twitter, Facebook (via API) | |
| - **Blogs** : Contenus personnels et professionnels | |
| - **PDFs** : Documents officiels, rapports | |
| - **Vidéos** : YouTube, Vimeo (métadonnées) | |
| - **Podcasts** : Transcriptions et descriptions | |
| ## 🔄 Reprise du scraping après interruption | |
| ### ✅ Oui, le système évite les doublons ! | |
| **Mécanisme de détection :** | |
| 1. **Hash du contenu** : Chaque document a un hash unique | |
| 2. **URL de source** : Vérification par URL d'origine | |
| 3. **Timestamp** : Horodatage pour versioning | |
| 4. **Base de données** : Vérification en PostgreSQL/MongoDB | |
| **Comportement :** | |
| ```python | |
| # Si document existe déjà | |
| if existing_document: | |
| # Création d'une nouvelle version | |
| new_version = DocumentVersion( | |
| document_id=existing.id, | |
| texte=new_content, | |
| date=datetime.now() | |
| ) | |
| # Pas de doublon, juste mise à jour | |
| else: | |
| # Nouveau document | |
| create_new_document() | |
| ``` | |
| **Avantages :** | |
| - ✅ Pas de répétition des données | |
| - ✅ Mise à jour des contenus modifiés | |
| - ✅ Historique des versions | |
| - ✅ Reprise automatique où ça s'est arrêté | |
| ## 🗄️ Configuration des bases de données | |
| ### PostgreSQL (Obligatoire) | |
| ```bash | |
| # 1. Télécharger depuis https://www.postgresql.org/download/windows/ | |
| # 2. Installer avec les paramètres par défaut | |
| # 3. Créer la base de données | |
| createdb scrapdji | |
| # 4. Configurer dans .env | |
| POSTGRES_URI=postgresql://postgres:votre_mot_de_passe@localhost:5432/scrapdji | |
| ``` | |
| ### MongoDB (Obligatoire) | |
| ```bash | |
| # 1. Télécharger depuis https://www.mongodb.com/try/download/community | |
| # 2. Installer MongoDB Community Server | |
| # 3. Démarrer le service | |
| net start MongoDB | |
| # 4. Configurer dans .env | |
| MONGO_URI=mongodb://localhost:27017 | |
| MONGO_DB=scrapdji | |
| ``` | |
| ### Typesense (Optionnel - Recherche avancée) | |
| ```bash | |
| # Installation via Docker (recommandé) | |
| docker run -p 8108:8108 -v typesense-data:/data typesense/typesense:latest --data-dir /data --api-key=xyz | |
| # Ou télécharger l'exécutable Windows | |
| # https://github.com/typesense/typesense/releases | |
| ``` | |
| ### Qdrant (Optionnel - IA/ML) | |
| ```bash | |
| # Installation via Docker | |
| docker run -p 6333:6333 qdrant/qdrant | |
| # Ou télécharger l'exécutable | |
| # https://github.com/qdrant/qdrant/releases | |
| ``` | |
| ## 💾 Consommation des ressources | |
| ### Estimation des ressources : | |
| **Scraping léger (10 sources) :** | |
| - CPU : 5-10% (processeur moderne) | |
| - RAM : 200-500 MB | |
| - Disque : 1-5 GB/jour | |
| - Réseau : 10-50 MB/source | |
| **Scraping intensif (100+ sources) :** | |
| - CPU : 20-40% | |
| - RAM : 1-2 GB | |
| - Disque : 10-50 GB/jour | |
| - Réseau : 100-500 MB/source | |
| ### Optimisations : | |
| ```python | |
| # Configuration optimisée dans .env | |
| SCRAPER_DELAY=2 # Délai entre requêtes | |
| SCRAPER_CONCURRENT_REQUESTS=8 # Requêtes simultanées | |
| SCRAPER_TIMEOUT=30 # Timeout des requêtes | |
| SCRAPER_RETRY_TIMES=3 # Nombre de tentatives | |
| ``` | |
| ### Recommandations : | |
| - **Débutant** : 5-10 sources, scraping toutes les heures | |
| - **Intermédiaire** : 20-50 sources, scraping toutes les 30 minutes | |
| - **Avancé** : 100+ sources, scraping en continu avec queue | |
| ## 🔧 Configuration Git | |
| ### Fichier .gitignore | |
| ```gitignore | |
| # Environnement virtuel | |
| venv/ | |
| env/ | |
| .venv/ | |
| # Variables d'environnement | |
| .env | |
| .env.local | |
| .env.production | |
| # Logs | |
| logs/ | |
| *.log | |
| # Données scrapées | |
| storage_data/ | |
| data/ | |
| temp/ | |
| # Cache | |
| __pycache__/ | |
| *.pyc | |
| *.pyo | |
| *.pyd | |
| .Python | |
| # IDE | |
| .vscode/ | |
| .idea/ | |
| *.swp | |
| *.swo | |
| # OS | |
| .DS_Store | |
| Thumbs.db | |
| # Base de données | |
| *.db | |
| *.sqlite | |
| # Fichiers temporaires | |
| *.tmp | |
| *.temp | |
| ``` | |
| ### Commandes Git recommandées : | |
| ```bash | |
| # Initialiser le repository | |
| git init | |
| # Ajouter les fichiers de configuration | |
| git add .gitignore | |
| git add config.env.example | |
| git add sources.json.example | |
| # Premier commit | |
| git commit -m "Initial commit - Configuration Scrap-Dji" | |
| # Ajouter le code source | |
| git add . | |
| git commit -m "Ajout du code source Scrap-Dji" | |
| # Créer une branche pour le développement | |
| git checkout -b develop | |
| ``` | |
| ## 🚀 Script de configuration automatique | |
| ```bash | |
| # Script pour configurer tout automatiquement | |
| python setup.py --auto | |
| # Ou configuration manuelle | |
| python setup.py --interactive | |
| ``` | |
| ## 📊 Monitoring et métriques | |
| ### Métriques disponibles : | |
| - **Documents traités** : Nombre total | |
| - **Nouvelles sources** : Sources découvertes | |
| - **Taux de succès** : Pourcentage de succès | |
| - **Temps de traitement** : Durée par source | |
| - **Erreurs** : Logs d'erreurs détaillés | |
| ### Dashboard (futur) : | |
| - Interface web pour visualiser les métriques | |
| - Graphiques en temps réel | |
| - Alertes automatiques | |
| - Export des données | |
| ## 🎯 Prochaines étapes recommandées | |
| 1. **Installation** : PostgreSQL + MongoDB | |
| 2. **Configuration** : .env et sources.json | |
| 3. **Test** : Lancement avec --dry-run | |
| 4. **Déploiement** : Scraping en production | |
| 5. **Optimisation** : Ajustement des paramètres | |
| 6. **Monitoring** : Surveillance des performances | |
| 7. **API** : Déploiement de l'API FastAPI | |
| 8. **Frontend** : Interface utilisateur web |