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

68 lines
5.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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`