5.2 KiB
Scrappling — évaluation vs stack existant (Firecrawl/Camoufox/SearXNG), installation différée
Instance auteur : hermes-nyora Date : 2026-08-14 Tags : nyora, scraping, firecrawl, camofox, veille, prospection Statut : en-cours (installation différée, décision Nabil)
Contexte
Recherche déclenchée par un résumé vidéo sur Scrappling (lib Python de scraping local, gratuite, sélecteurs CSS pour réduire les tokens vs fetch de page entière). Objectif initial : évaluer 3 cas d'usage — veille Dr Nexum, prospection Zouheir (Belgique), recherche design nyora-doc-api.
Constat — le stack existant couvre déjà l'essentiel
Vérification avant tout déploiement (cf. common/ecriture-naturelle-firecrawl-4-instances.md, common/veille-nexum-sources-reddit-403-nas-ip.md) :
- Firecrawl déjà déployé sur les 4 instances (hermes-tt/nyora/perso/nabil),
FIRECRAWL_API_KEYpartagée (1000 crédits/mois, un seul compte), scriptfirecrawl_scrape.pyendata/scripts/, usage "dernier recours" pour préserver le quota. - SearXNG (
SEARXNG_URL) disponible comme meta-recherche gratuite. web_extract_tool(hermes-agent-source) multi-backend (Exa/Firecrawl/Parallel/Tavily/ddgs) + résumé LLM Gemini 3 Flash pour réduire les tokens.browser_camofox.py: navigateur furtif anti-bot déjà intégré — plus robuste que le Stealthy Fetcher de Scrappling.
Donc Scrappling ferait doublon sur : veille générale, contournement anti-bot, recherche web.
Réalité veille Dr Nexum (corrige une hypothèse initiale fausse en session)
Le job "veille-ia-nexum" n'est pas un simple scraper — pipeline en évolution :
- n8n
Eh2nomLhSuL3iUMp(44 sources RSS/YouTube/GitHub + 5 sources Reddit ajoutées) trouvé inactif le 31/07 malgré la doc précédente ("tourne 3x/j"). - Reddit bloqué en HTTP 403 au niveau IP (pas user-agent, pas domaine) — Scrappling ni Camoufox n'auraient résolu ça (même IP NAS). Options identifiées : app Reddit officielle (bloquée à la création côté Nabil, cause non diagnostiquée) ou endpoint payant Scrape Creators (~$1.88/1000).
- Pivot vers
veille_ia_matin.py(17 chaînes YouTube + 13 flux RSS, TOP_N 20) comme mécanisme actif ; coût déjà flagué comme lourd (mimo × 2-3 recherches/article × 3/j, proche du plafond OpenCode Go 10$/mois).
Ce qui NE fonctionne PAS
| Tentative | Erreur obtenue | Raison de l'échec |
|---|---|---|
Hypothèse initiale "aucun backend payant configuré" (grep .env.disabled + config/*.yaml racine hermes-nyora) |
Faux négatif | FIRECRAWL_API_KEY injectée via docker-compose.yml (bloc environment:), pas dans les fichiers grepés |
Fetch Reddit JSON anonyme depuis IP NAS (UA générique puis UA Chrome, www.reddit.com puis old.reddit.com) |
HTTP 403 systématique | Blocage réseau au niveau IP publique du NAS, pas contournable par un fetcher différent (Scrappling/Camoufox partiraient de la même IP) |
Où Scrappling garde une valeur réelle
Pas en remplacement — en pré-filtre gratuit avant Firecrawl, pour l'extraction structurée répétée où un LLM/Firecrawl est un gâchis de tokens/crédits :
- Prospection Zouheir (annuaires belges → CSV structuré nom/tél/adresse) : sélecteur CSS fixe, zéro consommation du quota Firecrawl partagé (1000 crédits/mois pour 4 instances).
- Recherche design nyora-doc-api (couleurs hex/polices/CTA en valeurs brutes, pas en prose résumée) : idem, un LLM ne doit pas être dans cette boucle.
Solution proposée (si installation reprise — non déployée à ce jour)
Module Python léger dans hermes-agent-source/tools/, à côté de web_tools.py/browser_camofox.py. Fetcher Scrappling en premier essai ; échec/blocage → fallback vers firecrawl_scrape.py existant (dernier recours déjà en place, pas de nouveau mécanisme anti-bot à maintenir). Validation de forme post-extraction (champs non vides/types attendus) ; échec = log + alerte, jamais de push silencieux vers Baserow.
Décision
Installation différée. Priorité si repris : prospection Zouheir (lien direct avec l'activité commerciale Nyora) avant design nyora-doc-api.
Sauvegarde effectuée (14/08/2026, précaution avant toute installation future)
hermes-agent-source-backup-20260814-1444.tgz (138M, exclusions .venv/node_modules/__pycache__/.git, même convention que le round du 23/07) dans /mnt/docker/hermes-platform/.
Pièges spécifiques mcp-nas
hermes-nyora/data/(0700,1026:users) illisible depuis session mcp-nas malgréuid=0(rootdu container ≠ accès réel) — permission denied. Sauvegarde dedata/(et donc dedata/scripts/firecrawl_scrape.py) à faire via SSH Best0f oudocker execdirect, hors de portée de ce canal.dockerabsent du container mcp-nas (command not found) — pas dedocker execpossible depuis cette session.gitabsent également — confirmecommon/git-push-depuis-mcp-nas.md; ce runbook a été poussé via l'API HTTP Gitea (172.17.0.1:3232, tokenGITEA_TOKEN_NYORA) suivant la méthode déjà documentée.
Références
common/ecriture-naturelle-firecrawl-4-instances.mdcommon/veille-nexum-sources-reddit-403-nas-ip.mdcommon/git-push-depuis-mcp-nas.md