Les workflows n8n qui scrappent des sites web via des nœuds HTTP Request se cassent constamment à cause des CAPTCHAs, des blocages IP et des modifications de structure HTML. Maintenir des scrapers dans n8n nécessite des mises à jour constantes des nœuds et une logique de rotation de proxy qui encombre votre workflow. Remplacer les nœuds de scraping par un appel API de recherche structuré élimine complètement ces modes de défaillance. Ce tutoriel montre comment remplacer les nœuds de scraping HTTP Request défaillants de n8n par des appels API Scavio qui renvoient du JSON propre. Le résultat est un workflow n8n fiable qui n'a jamais besoin de gestion de proxy ni d'analyse HTML.
Prérequis
- Instance n8n en cours d'exécution (cloud ou auto-hébergé)
- Une clé API Scavio depuis scavio.dev
- Un workflow n8n existant avec des nœuds de scraping
Parcours
Étape 1: Identifier le nœud de scraping défaillant
Trouvez le nœud HTTP Request dans votre workflow n8n qui échoue à cause de blocages ou d'erreurs d'analyse.
# Common n8n scraping failure patterns:
# 1. HTTP Request node returns 403/429 status
# 2. HTML Extract node returns empty because DOM changed
# 3. Proxy rotation node adds complexity and still fails
# Replace ALL of the above with a single HTTP Request node
# pointing to the Scavio APIÉtape 2: Configurer le nœud API Scavio
Remplacez le nœud de scraping par un nœud HTTP Request configuré pour l'API Scavio.
# n8n HTTP Request node settings:
# Method: POST
# URL: https://api.scavio.dev/api/v1/search
# Authentication: Header Auth
# Header Name: x-api-key
# Header Value: your_scavio_api_key
# Body Content Type: JSON
# Body Parameters:
# platform: google
# query: {{ $json.search_query }}Étape 3: Analyser la réponse structurée
L'API renvoie du JSON propre, vous pouvez donc supprimer complètement les nœuds d'analyse HTML.
# In n8n, access results directly:
# {{ $json.organic_results[0].title }}
# {{ $json.organic_results[0].link }}
# {{ $json.organic_results[0].snippet }}
# No more HTML Extract nodes needed
# No more CSS selector maintenance
# No more regex parsingÉtape 4: Tester avec l'équivalent Python
Vérifiez que l'appel API fonctionne avant de le configurer dans n8n.
import os, requests
API_KEY = os.environ["SCAVIO_API_KEY"]
resp = requests.post("https://api.scavio.dev/api/v1/search",
headers={"x-api-key": API_KEY},
json={"platform": "google", "query": "best project management tools 2026"})
data = resp.json()
for r in data.get("organic_results", [])[:3]:
print(f"{r['title']}: {r['link']}")Exemple Python
import os, requests
API_KEY = os.environ["SCAVIO_API_KEY"]
resp = requests.post("https://api.scavio.dev/api/v1/search",
headers={"x-api-key": API_KEY},
json={"platform": "google", "query": "best project management tools"})
for r in resp.json().get("organic_results", [])[:5]:
print(r["title"], r["link"])Exemple JavaScript
const r = await fetch("https://api.scavio.dev/api/v1/search", {
method: "POST",
headers: {"x-api-key": process.env.SCAVIO_API_KEY, "Content-Type": "application/json"},
body: JSON.stringify({platform: "google", query: "best project management tools"})
});
const data = await r.json();
(data.organic_results || []).slice(0,5).forEach(r => console.log(r.title, r.link));Sortie attendue
A working n8n workflow that fetches structured search data via API instead of scraping, eliminating proxy failures and HTML parsing maintenance.