---
title: "Scrapling : accès web pour agents"
name: "Scrapling"
slug: "scrapling"
number: "12"
lang: "fr"
status: "Projet réalisé"
nature: "Adaptations de logiciels"
context: "Adaptation d’un projet open source"
stack: "Python, MCP, Scrapling, systemd"
claim: "Pour donner à Hermès un accès web utilisable sur des sites protégés, j’ai adapté Scrapling avec une stratégie progressive de récupération, des interactions navigateur et un suivi des échecs."
proof: "Adaptation de Scrapling : récupération progressive, page interactive et régulation des accès par domaine."
summary: "Lire une page protégée demande souvent plusieurs décisions : choisir un moteur, attendre, conserver une session ou essayer une interaction. J’ai adapté le framework Scrapling pour prendre en charge cette orchestration dans un serveur MCP utilisé avec mes agents. Le service commence par une récupération simple et peut transmettre une page encore ouverte lorsque l’agent doit poursuivre lui-même. Mon apport porte sur cette progression, les outils de navigation, les profils et les diagnostics ; les moteurs de récupération et le parseur viennent du projet original."
code: "Adaptation personnelle de Scrapling, code du fork privé."
canonical: "https://eliasbellouti.com/fr/projects/scrapling"
translation: "https://eliasbellouti.com/projects/scrapling.md"
author: "Elias Bellouti"
author_url: "https://eliasbellouti.com"
---

# Scrapling : accès web pour agents

Lire une page protégée demande souvent plusieurs décisions : choisir un moteur, attendre, conserver une session ou essayer une interaction. J’ai adapté le framework Scrapling pour prendre en charge cette orchestration dans un serveur MCP utilisé avec mes agents. Le service commence par une récupération simple et peut transmettre une page encore ouverte lorsque l’agent doit poursuivre lui-même. Mon apport porte sur cette progression, les outils de navigation, les profils et les diagnostics ; les moteurs de récupération et le parseur viennent du projet original.

## Rendre l’accès web utilisable par Hermès

J’utilise Hermès pour des tâches qui nécessitent de rechercher et lire des pages, notamment sur des places de marché françaises. Lorsqu’une protection anti-bot intervient, l’agent doit choisir entre attendre, changer de moteur ou poursuivre dans un navigateur. J’ai adapté [Scrapling, le framework de Karim Shoair](https://github.com/D4Vinci/Scrapling), pour organiser ces décisions dans son interface MCP.

Le parseur, les moteurs de récupération et les fonctions de collecte du framework appartiennent à l’amont. Mon travail porte sur la couche proposée aux agents : stratégie progressive, presets, états de réponse, interactions et outils d’exploitation.

## Passer de la récupération à l’interaction

L’outil `smart_fetch` commence par une requête peu coûteuse, puis utilise un navigateur dynamique ou une configuration renforcée si nécessaire. Il examine la réponse et renvoie un état explicite : contenu obtenu, quota, challenge, erreur ou interaction requise. L’agent peut ainsi distinguer une page utile d’un écran de blocage.

Lorsque l’extraction automatique ne suffit plus, le serveur conserve une page ouverte et transmet ses identifiants. L’agent peut observer son arbre d’accessibilité, cliquer, saisir, attendre ou faire défiler, puis extraire le contenu pertinent. Ce passage de relais évite de repartir de zéro alors qu’une session existe déjà. Les actions de l’agent prolongent le travail préparé par le service.

## Adapter les tentatives au domaine

J’ai ajouté une mémoire opérationnelle par domaine, appelée DomainBrain. Elle conserve pendant la vie du serveur les niveaux qui ont fonctionné et règle concurrence, délais et pauses. Un succès peut réduire l’attente ; une limitation ou des challenges répétés l’augmentent. Ces décisions suivent des règles et des résultats observés.

Les profils et les cookies répondent à une autre question : retrouver un contexte de navigation entre plusieurs parcours. Les presets regroupent des réglages récurrents, tout en laissant les arguments explicites prioritaires. J’ai conservé la politique d’escalade dans la couche MCP afin de garder les moteurs Python centrés sur la récupération des pages.

## Exploiter et maintenir la capacité web

Le fork comprend des contrôles du contrat MCP, des procédures pour les profils bloqués et la récupération des navigateurs orphelins. Il prévoit un affichage virtuel pour les configurations navigateur qui en ont besoin sur un serveur sans écran. Les guides donnent aussi un cycle d’usage : ouvrir, naviguer, interagir, extraire puis fermer.

J’ai maintenu ces ajouts lors des mises à jour du framework et documenté les frontières entre les composants. Les protections des sites évoluent, ce qui donne une place importante au diagnostic et aux réponses d’échec. Le code de mon adaptation est privé ; le [projet original et sa documentation](https://github.com/D4Vinci/Scrapling) permettent d’examiner le socle sur lequel elle repose.
