Récupérer les résultats de recherche Google par programmation est une exigence fondamentale pour les outils SEO, les pipelines de recherche et les agents IA. L'approche traditionnelle — gérer des proxies, alterner les user agents et analyser le HTML brut — est fragile et coûteuse. L'API Scavio fournit un seul point de terminaison POST qui renvoie du JSON structuré comprenant les résultats organiques, les extraits optimisés, les graphes de connaissances et les données « Les autres ont également demandé ». Ce tutoriel vous guide à travers l'authentification, la création d'une requête et l'analyse de la réponse en Python à l'aide de la bibliothèque requests.
Prérequis
- Python 3.8 ou version ultérieure installé
- bibliothèque requests installée (pip install requests)
- Une clé API Scavio depuis scavio.dev
- Connaissance de base des dictionnaires Python et du JSON
Parcours
Étape 1: Installer la bibliothèque requests
Si vous n'avez pas encore requests installé, ajoutez-le à votre environnement. C'est la seule dépendance nécessaire pour ce tutoriel.
pip install requestsÉtape 2: Définir votre clé API
Stockez votre clé API Scavio dans une variable d'environnement plutôt que de la coder en dur. Cela évite d'inclure les identifiants dans le contrôle de source.
import os
API_KEY = os.environ.get("SCAVIO_API_KEY", "your_scavio_api_key")Étape 3: Envoyer la requête de recherche
Effectuez un POST vers le point de terminaison Scavio avec votre requête et le code pays. La réponse est un objet JSON contenant les résultats organiques et les fonctionnalités SERP.
import requests
response = requests.post(
"https://api.scavio.dev/api/v1/search",
headers={"x-api-key": API_KEY},
json={"query": "best python web frameworks", "country_code": "us"}
)
data = response.json()Étape 4: Analyser et afficher les résultats organiques
La clé organic_results contient une liste d'objets de résultats. Chacun comporte les champs title, link et snippet.
for result in data.get("organic_results", []):
print(result["title"])
print(result["link"])
print(result.get("snippet", ""))
print()Exemple Python
import os
import requests
API_KEY = os.environ.get("SCAVIO_API_KEY", "your_scavio_api_key")
ENDPOINT = "https://api.scavio.dev/api/v1/search"
def search_google(query: str, country: str = "us") -> dict:
response = requests.post(
ENDPOINT,
headers={"x-api-key": API_KEY, "Content-Type": "application/json"},
json={"query": query, "country_code": country}
)
response.raise_for_status()
return response.json()
def main():
results = search_google("best python web frameworks")
organic = results.get("organic_results", [])
print(f"Found {len(organic)} results")
for r in organic[:5]:
print(f"- {r['title']}")
print(f" {r['link']}")
if __name__ == "__main__":
main()Exemple JavaScript
const API_KEY = process.env.SCAVIO_API_KEY || "your_scavio_api_key";
const ENDPOINT = "https://api.scavio.dev/api/v1/search";
async function searchGoogle(query, country = "us") {
const response = await fetch(ENDPOINT, {
method: "POST",
headers: {
"x-api-key": API_KEY,
"Content-Type": "application/json"
},
body: JSON.stringify({ query, country_code: country })
});
if (!response.ok) throw new Error(`HTTP ${response.status}`);
return response.json();
}
async function main() {
const results = await searchGoogle("best python web frameworks");
const organic = results.organic_results || [];
console.log(`Found ${organic.length} results`);
organic.slice(0, 5).forEach(r => {
console.log(`- ${r.title}`);
console.log(` ${r.link}`);
});
}
main().catch(console.error);Sortie attendue
{
"search_metadata": { "query": "best python web frameworks", "country_code": "us" },
"organic_results": [
{
"position": 1,
"title": "Top Python Web Frameworks in 2026",
"link": "https://example.com/python-frameworks",
"snippet": "Django, FastAPI, and Flask remain the top choices..."
},
{
"position": 2,
"title": "FastAPI vs Django: Which Should You Use?",
"link": "https://example.com/fastapi-vs-django",
"snippet": "FastAPI is ideal for async microservices..."
}
]
}