Files
nas-runbooks/hermes-nyora/scrappling-evaluation-vs-firecrawl-camofox-14-08-2026.md
T

5.2 KiB
Raw Blame History

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_KEY partagée (1000 crédits/mois, un seul compte), script firecrawl_scrape.py en data/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 :

  1. 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).
  2. 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 (root du container ≠ accès réel) — permission denied. Sauvegarde de data/ (et donc de data/scripts/firecrawl_scrape.py) à faire via SSH Best0f ou docker exec direct, hors de portée de ce canal.
  • docker absent du container mcp-nas (command not found) — pas de docker exec possible depuis cette session.
  • git absent également — confirme common/git-push-depuis-mcp-nas.md ; ce runbook a été poussé via l'API HTTP Gitea (172.17.0.1:3232, token GITEA_TOKEN_NYORA) suivant la méthode déjà documentée.

Références

  • common/ecriture-naturelle-firecrawl-4-instances.md
  • common/veille-nexum-sources-reddit-403-nas-ip.md
  • common/git-push-depuis-mcp-nas.md