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