Eliminar Google News en 2026 es una zona de pruebas de bibliotecas rotas, muros de captcha y facturas de proxy rotativas. La ruta más rápida es una API SERP con `search_type: news` que devuelve los mismos artículos escritos en JSON. Este tutorial muestra dos métodos: llamada API directa para obtener noticias diarias y un agregador programado para un monitor de marca o tema.
Requisitos previos
- Python 3.10+
- Una clave API de Scavio
Guia paso a paso
Paso 1: Utilice Google News para realizar una consulta
Una llamada de Scavio devuelve título, fragmento, fuente y fecha.
import requests, os
API_KEY = os.environ['SCAVIO_API_KEY']
def news(query):
r = requests.post('https://api.scavio.dev/api/v1/google',
headers={'x-api-key': API_KEY},
json={'query': query, 'search_type': 'news', 'num_results': 20})
return r.json().get('news_results', [])Paso 2: Filtrar por rango de fechas
Pase `time_range` para abarcar los días más recientes.
def fresh_news(query, days=1):
r = requests.post('https://api.scavio.dev/api/v1/google',
headers={'x-api-key': API_KEY},
json={'query': query, 'search_type': 'news', 'time_range': f'd{days}'})
return r.json().get('news_results', [])Paso 3: Construir un monitor de marca
Programe una ejecución diaria y deduplicación por URL.
import json, pathlib
seen = pathlib.Path('seen.json')
known = json.loads(seen.read_text() or '[]')
def monitor(brand):
for item in fresh_news(brand, days=1):
if item['link'] not in known:
known.append(item['link'])
print(f"NEW: {item['title']} - {item['source']}")
seen.write_text(json.dumps(known))Paso 4: Agregar verificación cruzada de Reddit
Valide noticias con una búsqueda en un hilo de Reddit.
def cross_check(brand, headline):
r = requests.post('https://api.scavio.dev/api/v1/reddit/search',
headers={'x-api-key': API_KEY},
json={'query': f'{brand} {headline[:50]}'})
return r.json().get('posts', [])[:5]Paso 5: Envíe el resumen por correo electrónico
Utilice cualquier biblioteca SMTP para enviar un resumen de rebajas.
# Email body composed from `monitor` output;
# omitted SMTP wiring for brevity.Ejemplo en Python
import os, requests
API_KEY = os.environ['SCAVIO_API_KEY']
def google_news(query):
r = requests.post('https://api.scavio.dev/api/v1/google',
headers={'x-api-key': API_KEY},
json={'query': query, 'search_type': 'news', 'num_results': 20})
return r.json().get('news_results', [])
for a in google_news('openai gpt-5.5 launch'):
print(a['title'], '-', a['source'])Ejemplo en JavaScript
const API_KEY = process.env.SCAVIO_API_KEY;
export async function googleNews(query) {
const r = await fetch('https://api.scavio.dev/api/v1/google', {
method: 'POST',
headers: { 'x-api-key': API_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({ query, search_type: 'news', num_results: 20 })
});
return (await r.json()).news_results || [];
}Salida esperada
Typed JSON list of news articles with title, snippet, source, date, and URL. Daily monitor emits only new articles since the last run.