Scrap-Dji / FAQ.md
joel
Initial deployment: Scrap-Dji with API
dfdddb1

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 :

{
  "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 :

# 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)

# 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)

# 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)

# 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)

# 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 :

# 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

# 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 :

# 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

# 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