L'API SERP de Bright Data exige un engagement minimum de 499 $/mois, la configuration d'une zone, la gestion des proxys et une liste blanche d'IP avant de pouvoir exécuter une seule requête. Pour les équipes qui ont besoin de résultats de recherche structurés sans infrastructure proxy d'entreprise, une API légère comme Scavio fournit les mêmes résultats organiques, extraits optimisés et données PAA via un seul point de terminaison POST à 0,005 $/crédit sans minimum de dépenses. Ce tutoriel décrit les deux configurations côte à côte afin que vous puissiez évaluer les compromis en moins de 15 minutes.
Prérequis
- Python 3.8+ installé
- bibliothèque requests installée (pip install requests)
- Un compte Bright Data (pour la voie Bright Data)
- Une clé API Scavio depuis scavio.dev (pour la voie légère)
Parcours
Étape 1: Configurer la zone SERP Bright Data
Bright Data nécessite la création d'une zone d'API SERP dans le tableau de bord, la configuration des identifiants proxy, la mise en liste blanche de votre IP serveur et le choix d'un plan de facturation (minimum 499 $/mois pour l'API SERP). Vous recevez un nom d'utilisateur de zone, un mot de passe et un hôte.
# Bright Data setup (after dashboard configuration)
import requests
BD_HOST = 'brd.superproxy.io'
BD_PORT = 33335
BD_USER = 'brd-customer-CUST_ID-zone-ZONE_NAME'
BD_PASS = 'your_zone_password'
proxies = {
'http': f'http://{BD_USER}:{BD_PASS}@{BD_HOST}:{BD_PORT}',
'https': f'http://{BD_USER}:{BD_PASS}@{BD_HOST}:{BD_PORT}'
}
# Bright Data SERP request
resp = requests.get(
'https://www.google.com/search?q=best+crm+2026&gl=us',
proxies=proxies,
verify=False # Required for BD proxy
)
print(f'Status: {resp.status_code}, Length: {len(resp.text)}')
# You still need to parse raw HTML yourselfÉtape 2: Configurer l'alternative légère
Avec une API de recherche légère, il n'y a pas de configuration de zone, pas de gestion de proxy et pas de liste blanche d'IP. Vous obtenez une clé API et commencez à interroger immédiatement. La réponse est un JSON structuré, pas du HTML brut.
import requests, os
API_KEY = os.environ.get('SCAVIO_API_KEY', 'your_scavio_api_key')
resp = requests.post(
'https://api.scavio.dev/api/v1/search',
headers={'x-api-key': API_KEY, 'Content-Type': 'application/json'},
json={'query': 'best crm 2026', 'country_code': 'us'}
)
data = resp.json()
for r in data.get('organic_results', [])[:3]:
print(f"{r['title']} -> {r['link']}")Étape 3: Comparer les formats de réponse
Bright Data renvoie du HTML Google brut que vous devez analyser avec BeautifulSoup ou un analyseur personnalisé. L'API légère renvoie un JSON structuré avec organic_results, featured_snippets et people_also_ask déjà extraits.
# Bright Data: you must parse HTML yourself
from bs4 import BeautifulSoup
soup = BeautifulSoup(bd_response.text, 'html.parser')
results = []
for div in soup.select('div.g'):
title = div.select_one('h3')
link = div.select_one('a')
if title and link:
results.append({'title': title.text, 'link': link['href']})
# Fragile: selector changes break this regularly
# Lightweight API: structured JSON out of the box
organic = data.get('organic_results', [])
snippets = data.get('featured_snippets', [])
paa = data.get('people_also_ask', [])
print(f'{len(organic)} results, {len(snippets)} snippets, {len(paa)} PAA')Étape 4: Comparer les coûts à différents volumes
Calculez le coût mensuel des deux options pour des volumes de requêtes courants. L'API SERP Bright Data démarre à 499 $/mois. L'API légère facture 0,005 $/crédit avec un niveau gratuit de 250 crédits/mois et des forfaits à partir de 30 $/7K crédits.
volumes = [1000, 5000, 10000, 50000]
print(f'{"Queries/mo":<12} {"Bright Data":<15} {"Scavio":<15} {"Savings"}')
print('-' * 55)
for v in volumes:
bd_cost = max(499, v * 0.01) # ~$0.01/query on SERP API
# Scavio: $0.005/credit, 1 credit per query
if v <= 250:
sc_cost = 0
elif v <= 7000:
sc_cost = 30
elif v <= 28000:
sc_cost = 100
elif v <= 85000:
sc_cost = 250
else:
sc_cost = 500
savings = bd_cost - sc_cost
print(f'{v:<12} ${bd_cost:<14.0f} ${sc_cost:<14} ${savings:.0f}')Exemple Python
import requests, os, time
API_KEY = os.environ.get('SCAVIO_API_KEY', 'your_scavio_api_key')
ENDPOINT = 'https://api.scavio.dev/api/v1/search'
HEADERS = {'x-api-key': API_KEY, 'Content-Type': 'application/json'}
def lightweight_search(query: str, country: str = 'us') -> dict:
start = time.time()
resp = requests.post(ENDPOINT, headers=HEADERS,
json={'query': query, 'country_code': country})
resp.raise_for_status()
elapsed = time.time() - start
data = resp.json()
return {
'query': query,
'results': len(data.get('organic_results', [])),
'snippets': len(data.get('featured_snippets', [])),
'paa': len(data.get('people_also_ask', [])),
'latency_ms': round(elapsed * 1000)
}
queries = ['best crm 2026', 'crm pricing comparison', 'hubspot vs salesforce']
for q in queries:
stats = lightweight_search(q)
print(f"{stats['query']}: {stats['results']} results in {stats['latency_ms']}ms")
print(f" Snippets: {stats['snippets']}, PAA: {stats['paa']}")Exemple JavaScript
const API_KEY = process.env.SCAVIO_API_KEY || 'your_scavio_api_key';
const ENDPOINT = 'https://api.scavio.dev/api/v1/search';
const HEADERS = { 'x-api-key': API_KEY, 'Content-Type': 'application/json' };
async function lightweightSearch(query, country = 'us') {
const start = Date.now();
const resp = await fetch(ENDPOINT, {
method: 'POST',
headers: HEADERS,
body: JSON.stringify({ query, country_code: country })
});
if (!resp.ok) throw new Error(`HTTP ${resp.status}`);
const data = await resp.json();
return {
query,
results: (data.organic_results || []).length,
snippets: (data.featured_snippets || []).length,
paa: (data.people_also_ask || []).length,
latencyMs: Date.now() - start
};
}
async function main() {
const queries = ['best crm 2026', 'crm pricing comparison', 'hubspot vs salesforce'];
for (const q of queries) {
const stats = await lightweightSearch(q);
console.log(`${stats.query}: ${stats.results} results in ${stats.latencyMs}ms`);
console.log(` Snippets: ${stats.snippets}, PAA: ${stats.paa}`);
}
}
main().catch(console.error);Sortie attendue
Queries/mo Bright Data Scavio Savings
-------------------------------------------------------
1000 $499 $30 $469
5000 $499 $30 $469
10000 $499 $100 $399
50000 $500 $250 $250
best crm 2026: 10 results in 820ms
Snippets: 1, PAA: 4
crm pricing comparison: 10 results in 750ms
Snippets: 0, PAA: 3
hubspot vs salesforce: 10 results in 680ms
Snippets: 1, PAA: 5