ScavioScavio
ProductoPreciosDocumentación
Iniciar sesionComenzar
  1. Inicio
  2. Tutoriales
  3. Cómo agregar datos de múltiples fuentes con una API de búsqueda
Tutorial

Cómo agregar datos de múltiples fuentes con una API de búsqueda

Agregue datos de Google, Amazon, YouTube, Reddit y Walmart en un solo canal. Deduplica, normaliza y fusiona resultados en todas las plataformas.

Obtener clave API gratisDocumentacion API

Agregue datos de múltiples plataformas de búsqueda en un conjunto de datos unificado consultando a Google, Amazon, YouTube, Reddit y Walmart a través de una única API, normalizando los campos de respuesta, deduplicando resultados superpuestos y combinándolos en una salida combinada. La agregación de múltiples fuentes es esencial para el análisis competitivo, la investigación de mercado y los flujos de trabajo de comparación de productos donde ninguna plataforma proporciona una imagen completa. Una canalización unificada elimina la necesidad de administrar claves API y analizadores de respuestas separados para cada plataforma.

Requisitos previos

  • Python 3.8+ instalado
  • solicita biblioteca instalada
  • Una clave API de Scavio de scavio.dev
  • Una consulta o tema para investigar en todas las plataformas

Guia paso a paso

Paso 1: Consultar todas las plataformas

Busque la misma consulta en todas las plataformas compatibles de una sola vez.

Python
import os, requests, time

API_KEY = os.environ['SCAVIO_API_KEY']
PLATFORMS = ['google', 'amazon', 'youtube', 'reddit', 'walmart']

def search_all(query: str) -> dict:
    all_results = {}
    for platform in PLATFORMS:
        resp = requests.post('https://api.scavio.dev/api/v1/search',
            headers={'x-api-key': API_KEY},
            json={'platform': platform, 'query': query}, timeout=15)
        data = resp.json()
        all_results[platform] = data.get('organic_results', [])
        time.sleep(0.2)
    return all_results

results = search_all('wireless earbuds')
for platform, items in results.items():
    print(f'{platform}: {len(items)} results')

Paso 2: Normalizar campos de respuesta

Asigne campos específicos de la plataforma a un esquema común para un procesamiento unificado.

Python
def normalize_result(result: dict, platform: str) -> dict:
    """Normalize a result from any platform to a common schema."""
    return {
        'platform': platform,
        'title': result.get('title', ''),
        'url': result.get('link', result.get('url', '')),
        'description': result.get('snippet', result.get('description', '')),
        'price': result.get('price', ''),
        'rating': result.get('rating', ''),
        'thumbnail': result.get('thumbnail', ''),
        'source': result.get('source', result.get('channel', '')),
    }

def normalize_all(raw_results: dict) -> list:
    normalized = []
    for platform, items in raw_results.items():
        for item in items:
            normalized.append(normalize_result(item, platform))
    return normalized

normalized = normalize_all(results)
print(f'Total normalized results: {len(normalized)}')
for r in normalized[:3]:
    print(f"  [{r['platform']}] {r['title'][:50]}")

Paso 3: Deduplicar resultados

Elimine las entradas duplicadas que aparecen en múltiples plataformas.

Python
from urllib.parse import urlparse

def deduplicate(results: list) -> list:
    seen_titles = set()
    seen_domains = {}
    deduped = []
    for r in results:
        title_key = r['title'].lower().strip()[:60]
        if title_key in seen_titles:
            continue
        seen_titles.add(title_key)
        domain = urlparse(r['url']).netloc if r['url'] else ''
        if domain and domain in seen_domains:
            existing = seen_domains[domain]
            if len(r['description']) > len(existing['description']):
                deduped.remove(existing)
                deduped.append(r)
                seen_domains[domain] = r
            continue
        if domain:
            seen_domains[domain] = r
        deduped.append(r)
    return deduped

deduped = deduplicate(normalized)
print(f'Before: {len(normalized)}, After: {len(deduped)} (removed {len(normalized) - len(deduped)} dupes)')

Paso 4: Fusionar y clasificar

Fusione resultados de todas las plataformas y clasifique según señales de relevancia.

Python
def rank_results(results: list) -> list:
    for r in results:
        score = 0
        if r['description']:
            score += 1
        if r['price']:
            score += 1
        if r['rating']:
            score += 1
        if r['url']:
            score += 1
        if r['platform'] == 'google':
            score += 1  # Boost web results for general queries
        r['relevance_score'] = score
    return sorted(results, key=lambda x: x['relevance_score'], reverse=True)

ranked = rank_results(deduped)
for r in ranked[:5]:
    print(f"  [{r['platform']}] score={r['relevance_score']} {r['title'][:45]}")

Paso 5: Exportar conjunto de datos agregados

Guarde los resultados combinados, deduplicados y clasificados como un único conjunto de datos JSON.

Python
import json

def export_aggregated(results: list, output_path: str):
    dataset = {
        'query': 'wireless earbuds',
        'platforms': PLATFORMS,
        'total_results': len(results),
        'platform_breakdown': {},
        'results': results,
    }
    for p in PLATFORMS:
        dataset['platform_breakdown'][p] = len([r for r in results if r['platform'] == p])
    with open(output_path, 'w') as f:
        json.dump(dataset, f, indent=2)
    print(f'Exported {len(results)} results to {output_path}')
    for p, count in dataset['platform_breakdown'].items():
        print(f'  {p}: {count}')

export_aggregated(ranked, 'aggregated_results.json')

Ejemplo en Python

Python
import requests, os
H = {'x-api-key': os.environ['SCAVIO_API_KEY']}

def multi_search(query, platforms=None):
    platforms = platforms or ['google', 'amazon', 'youtube']
    all_results = []
    for p in platforms:
        data = requests.post('https://api.scavio.dev/api/v1/search', headers=H,
            json={'platform': p, 'query': query}).json()
        for r in data.get('organic_results', [])[:3]:
            all_results.append({'platform': p, 'title': r.get('title', ''), 'url': r.get('link', '')})
    return all_results

print(multi_search('wireless earbuds'))

Ejemplo en JavaScript

JavaScript
const H = {'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'};
async function multiSearch(query, platforms = ['google', 'amazon', 'youtube']) {
  const all = [];
  for (const p of platforms) {
    const r = await fetch('https://api.scavio.dev/api/v1/search', {
      method: 'POST', headers: H,
      body: JSON.stringify({platform: p, query})
    });
    const results = (await r.json()).organic_results || [];
    results.slice(0, 3).forEach(r => all.push({platform: p, title: r.title, url: r.link}));
  }
  return all;
}
multiSearch('wireless earbuds').then(console.log);

Salida esperada

JSON
A unified dataset combining normalized, deduplicated, and ranked results from Google, Amazon, YouTube, Reddit, and Walmart for comprehensive multi-source analysis.

Tutoriales relacionados

  • Cómo crear una API de seguimiento de competidores de Shopify
  • Cómo crear un rastreador de precios en múltiples mercados

Preguntas frecuentes

La mayoria de los desarrolladores completan este tutorial en 15 a 30 minutos. Necesitaras una clave API de Scavio (el plan gratuito funciona) y un entorno de Python o JavaScript.

Python 3.8+ instalado. solicita biblioteca instalada. Una clave API de Scavio de scavio.dev. Una consulta o tema para investigar en todas las plataformas. Una clave API de Scavio te da 50 creditos gratuitos al registrarte.

Si. El plan gratuito incluye 50 creditos al registrarte, mas que suficiente para completar este tutorial y crear un prototipo funcional.

Scavio tiene un paquete nativo de LangChain (langchain-scavio), un servidor MCP y una API REST simple que funciona con cualquier cliente HTTP. Este tutorial usa the raw REST API, pero puedes adaptarlo al framework que prefieras.

Recursos relacionados

Best Of

Las mejores API de búsqueda después de los cambios en el modo AI de Google I/O 2026

Read more
Glossary

Panorama de proveedores de API de búsqueda (2026)

Read more
Best Of

Los mejores proveedores de API SERP clasificados por precio en 2026

Read more
Glossary

Comparación gratuita de niveles de API de búsqueda

Read more
Comparison

Search APIs (Scavio, Tavily, SerpAPI) vs Headless Browser (Playwright, Puppeteer, Browserbase)

Read more
Comparison

Google Places API vs SERP Local Pack API

Read more

Empieza a construir

Agregue datos de Google, Amazon, YouTube, Reddit y Walmart en un solo canal. Deduplica, normaliza y fusiona resultados en todas las plataformas.

Obtener clave API gratuitaLeer la documentacion
ScavioScavio

API de busqueda en tiempo real para agentes de IA. Busca en todas las plataformas, no solo en Google.

Producto

  • Funciones
  • Precios
  • Panel
  • Afiliados

Desarrolladores

  • Documentacion
  • Referencia de API
  • Inicio rapido
  • Integracion MCP
  • Python SDK

Alternativas

  • Alternativa a Tavily
  • Alternativa a SerpAPI
  • Alternativa a Firecrawl
  • Alternativa a Exa

Herramientas

  • Formateador JSON
  • cURL a codigo
  • Contador de tokens
  • Todas las herramientas

© 2026 Scavio. Todos los derechos reservados.

Featured on TAAFT
Terminos de servicioPolitica de privacidad