Le problème
Un post r/Rag : ~10M tokens d'articles techniques + docs + blogs + PDFs nécessaires pour un pipeline RAG. Le choix naïf est de tout scraper ; en 2026, l'approche moins chère et plus fiable est la recherche comme source pour le contenu public indexé.
La solution Scavio
Pipeline recherche-comme-source : 200-500 requêtes initiales → Scavio Google SERP → déduplication d'URLs → Scavio /extract pour les meilleures URLs → export Markdown avec budget de tokens. Réserver le scraping réel uniquement pour les cibles derrière authentification ou lourdes en JS.
Avant
Pipeline de scraping + infrastructure headless + course aux armements Cloudflare + maintenance de parseurs par site pour 10M tokens de contenu. Lourd en opérations.
Après
200 requêtes initiales → ~5 000 URLs uniques → top 2K via /extract → ~8M tokens de Markdown propre. Coût total Scavio ~50-90$. JSON typé partout.
À qui cela s'adresse
Ingénieurs IA construisant du RAG, fondateurs de SaaS RAG, laboratoires de recherche construisant des corpus de domaine à l'échelle de 1 à 10M tokens.
Avantages clés
- Évite la plupart des tracas de scraping sur le contenu public indexé
- JSON typé en entrée et sortie
- Coût prévisible par sujet
- 10M tokens pour 20-90$ en Scavio + extract
- Scraping réservé uniquement pour les cibles derrière authentification / lourdes en JS
Exemple Python
import requests, os
H = {'x-api-key': os.environ['SCAVIO_API_KEY']}
def build_corpus(seeds, per_query=10):
urls = set()
for q in seeds:
r = requests.post('https://api.scavio.dev/api/v1/search', headers=H, json={'query': q}).json()
for o in (r.get('organic_results') or [])[:per_query]:
urls.add(o['link'])
docs = []
for u in list(urls)[:2000]:
d = requests.post('https://api.scavio.dev/api/v1/extract', headers=H, json={'url': u}).json()
if d.get('text'): docs.append(d['text'])
return docsExemple JavaScript
// Same shape in TS — search per seed, dedupe, extract top-N.Plateformes utilisées
Recherche web avec graphe de connaissances, PAA et aperçus IA