Étude de cas 04 · Python · Automatisation · Bot
InstaBot
Tableau de bord multi-comptes pour collecter, filtrer et contacter des profils Instagram, avec suivi en temps réel.
- Rôle
- Conception et développement complet : moteur, interface et outils de diagnostic
- Catégorie
- Python · Automatisation · Bot
- Stack
- Python · Flask · Socket.IO
- Qualité
- 58 tests


01 — Contexte
Pour des professionnels qui gèrent plusieurs comptes Instagram, InstaBot centralise la collecte de profils et l'automatisation des interactions dans un tableau de bord web.
02 — Problème
Constituer des listes de profils, passer d'un compte à l'autre et éviter de recontacter les mêmes personnes : des heures de manipulations.
03 — Solution
L'utilisateur prépare ses comptes, importe une liste ou lance une collecte depuis des comptes et des publications. Il configure les critères de sélection, les modèles de messages et le rythme. Le moteur répartit les profils entre les comptes actifs et choisit l'action selon le contenu disponible ; les traitements tournent en arrière-plan avec un suivi en direct.
04 — Fonctionnalités
Comptes centralisés
Ajout, import, détection des doublons et rôles par compte.
Collecte d'audiences
Abonnés, abonnements et interactions de publications, avec relais entre comptes.
Filtrage
Compte public, photo, biographie, story et seuils d'abonnés.
Interactions
Réponses aux stories, stories à la une et messages directs.
Rythme et recontact
Délais, plages de sommeil, plafonds par compte et délais de recontact.
Supervision
Démarrage, arrêt, journaux en direct et historique exportable.
05 — En images

Tableau de bord avec les statistiques de contacts 
Configuration du scraper de followers
06 — Architecture
- Interface webJinja2 · JavaScript
- Flaskpages · API · auth
- Orchestrationthreads · asyncio
- Services Playwrightcollecte · interactions
- SQLite · Socket.IOhistorique · temps réel
Flask reçoit les commandes et lance les traitements dans des threads disposant de leur propre boucle asynchrone.
La collecte relie un producteur et des consommateurs par une file : les profils sont enrichis au fil de l'eau, sans attendre la fin de la liste.
07 — Défis techniques
Défi
Collecter et enrichir simultanément.
Solution
Pipeline producteur / consommateurs alimenté par une file asyncio.
Défi
Gérer plusieurs états de connexion.
Solution
Profils navigateur persistants, détection des états, TOTP et reconnexion.
Défi
Éviter les recontacts trop rapprochés.
Solution
Historique SQLite par compte et profil, avec délais individuels et globaux.
Défi
Composer avec une interface externe qui change.
Solution
Sélecteurs externalisés avec alternatives, statuts d'erreur et pauses progressives.
08 — Mon intervention
- Architecture modulaire et scénarios d'automatisation
- Backend Flask et interfaces de gestion
- Collecteurs, filtres et traitements asynchrones
- Persistance SQLite et journal CSV
- Sessions navigateur, double authentification et proxys
- Tests, outils de diagnostic et documentation
09 — Stack
- Backend
- Python, Flask, Flask-SocketIO, Eventlet
- Automatisation
- Playwright, Firefox, asyncio, multiprocessing
- Stockage
- SQLite (WAL), CSV, JSON
- Interface
- Jinja2, HTML, CSS, JavaScript, Socket.IO
- Qualité
- pytest, outils de diagnostic Playwright
10 — Résultats
58
tests unitaires réussis
4
types d'interaction : réponse ou réaction à une story, story à la une, message direct