Obtener los resultados de búsqueda de Google mediante programación es un requisito fundamental para las herramientas de SEO, los procesos de investigación y los agentes de inteligencia artificial. El enfoque tradicional (administrar servidores proxy, rotar agentes de usuario y analizar HTML sin formato) es frágil y costoso. La API de Scavio proporciona un único punto final POST que devuelve JSON estructurado que incluye resultados orgánicos, fragmentos destacados, gráficos de conocimiento y datos de People Also Ask. Este tutorial explica cómo autenticar, formar una solicitud y analizar la respuesta en Python utilizando la biblioteca de solicitudes.
Requisitos previos
- Python 3.8 o superior instalado
- solicita biblioteca instalada (solicitudes de instalación de pip)
- Una clave API de Scavio de scavio.dev
- Familiaridad básica con diccionarios Python y JSON
Guia paso a paso
Paso 1: Instalar la biblioteca de solicitudes
Si aún no tiene solicitudes instaladas, agréguelas a su entorno. Es la única dependencia necesaria para este tutorial.
pip install requestsPaso 2: Configure su clave API
Guarde su clave API de Scavio en una variable de entorno en lugar de codificarla. Esto mantiene las credenciales fuera del control de origen.
import os
API_KEY = os.environ.get("SCAVIO_API_KEY", "your_scavio_api_key")Paso 3: Enviar la solicitud de búsqueda
PUBLICAR en el punto final de Scavio con su consulta y código de país. La respuesta es un objeto JSON que contiene resultados orgánicos y funciones 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()Paso 4: Analizar e imprimir resultados orgánicos
La clave organic_results contiene una lista de objetos de resultados. Cada uno tiene campos de título, enlace y fragmento.
for result in data.get("organic_results", []):
print(result["title"])
print(result["link"])
print(result.get("snippet", ""))
print()Ejemplo en 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()Ejemplo en 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);Salida esperada
{
"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..."
}
]
}