ArachneControl – un système open source de collecte de données où le serveur pilote le navigateur à distance
(github.com/TaewonyNet)Il s’agit d’un système de collecte auto-hébergé qui recueille des données via la véritable session de navigateur de l’utilisateur, tandis que ce qui est collecté et la manière de le collecter sont publiés dynamiquement par le serveur à l’exécution. Un modèle Command-Execute-Report où le serveur contrôle à distance le client (navigateur).
Il répond par la conception à trois problèmes récurrents lorsqu’on réécrit un crawler : la charge/blocage du backend cible, les murs de connexion, et le redéploiement du client à chaque modification de la logique de collecte.
- Zero-Footprint : au lieu d’envoyer des requêtes directement au serveur cible, c’est le navigateur d’un utilisateur déjà connecté qui collecte à sa place → accès à l’intérieur du mur de connexion comme un humain, tout en évitant la charge backend et les blocages.
- Contrôle dynamique par le serveur : une fois enregistré, le bookmarklet reste immuable de façon permanente. Les règles de collecte (sélecteurs, actions, extraction) sont publiées par le serveur sous forme de commandes typées → 0 redéploiement client lors des changements de logique. Génération automatique des types TS à partir d’une source unique Pydantic.
- Création de recettes par clic : dans la WebUI, cliquer sur un élément génère automatiquement un sélecteur, puis une séquence d’actions (click, drag, scroll, swipe) → enregistrement de la recette d’extraction. Évaluation de
scriptinterdite (liste blanche). - Chargement sans perte : write-ahead (commit synchrone puis 202) + idempotence + récupération automatique au redémarrage.
- Contrôle d’agent MCP : expose le pipeline live comme outil MCP (host allowlist, rate-limit, garde-fous TTL d’opération). En revanche, l’évitement de bots et le scraping de masse ne sont pas des objectifs.
- secure-by-default : authentification d’administration activée par défaut (jeton automatique de type Jupyter), frontière d’exécution pour l’eval des réponses serveur (
script) et les balises externes (beacon), pas d’usage du fingerprinting. - Sans coût et portable : SQLite + file en mémoire + FastAPI unique. 0 service payant externe. Reproductible sur tous les OS avec
uv. MIT.
Pour collecter des sites publics, une URL publique est nécessaire à cause des restrictions Private Network Access du navigateur ; cela est contourné en lançant un tunnel temporaire cloudflared avec ENABLE_TUNNEL=1 (mesure réelle : collecte réussie sur de vrais sites d’actualités).
Aucun commentaire pour le moment.