# 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