Cree un rastreador de competidores de Shopify que monitoree las listas de productos, los precios y las clasificaciones de búsqueda de las tiendas rivales buscando productos de la competencia en Google y Amazon, extrayendo datos de precios y disponibilidad, y comparando cambios a lo largo del tiempo. Los propietarios de tiendas Shopify necesitan saber cuándo los competidores lanzan nuevos productos, cambian precios u obtienen posiciones en el ranking de búsqueda. Un rastreador automatizado detecta estos cambios diariamente sin necesidad de navegación manual, y la API de búsqueda proporciona datos estructurados que son más fáciles de procesar que el raspado de HTML sin formato.
Requisitos previos
- Python 3.8+ instalado
- solicita biblioteca instalada
- Una clave API de Scavio de scavio.dev
- Nombres de tiendas de la competencia o categorías de productos
Guia paso a paso
Paso 1: Definir competidores a seguir
Configure las tiendas de la competencia y las categorías de productos para monitorear.
import os, requests, json, datetime, time, re
API_KEY = os.environ['SCAVIO_API_KEY']
COMPETITORS = [
{'name': 'CompetitorA', 'domain': 'competitor-a.myshopify.com', 'categories': ['t-shirts', 'hoodies']},
{'name': 'CompetitorB', 'domain': 'competitor-b.com', 'categories': ['sneakers', 'accessories']},
]
HISTORY_FILE = 'competitor_tracker.json'
print(f'Tracking {len(COMPETITORS)} competitors')Paso 2: Buscar productos de la competencia
Consulte en Google las páginas de productos de la competencia para realizar un seguimiento de su catálogo.
def search_competitor_products(competitor: dict) -> list:
products = []
for category in competitor['categories']:
query = f'site:{competitor["domain"]} {category}'
resp = requests.post('https://api.scavio.dev/api/v1/search',
headers={'x-api-key': API_KEY},
json={'platform': 'google', 'query': query}, timeout=15)
results = resp.json().get('organic_results', [])
for r in results[:5]:
products.append({
'competitor': competitor['name'],
'category': category,
'title': r.get('title', ''),
'url': r.get('link', ''),
'snippet': r.get('snippet', ''),
})
time.sleep(0.3)
return products
prods = search_competitor_products(COMPETITORS[0])
print(f'Found {len(prods)} products')
for p in prods[:3]:
print(f" [{p['category']}] {p['title'][:50]}")Paso 3: Buscar precios de la competencia en Amazon
Haga referencias cruzadas de productos de la competencia en Amazon para comparar precios.
def search_amazon_pricing(product_name: str) -> dict:
resp = requests.post('https://api.scavio.dev/api/v1/search',
headers={'x-api-key': API_KEY},
json={'platform': 'amazon', 'query': product_name}, timeout=15)
results = resp.json().get('organic_results', [])
if not results:
return {'found': False}
top = results[0]
price_str = top.get('price', '')
price_clean = re.sub(r'[^\d.]', '', str(price_str))
return {
'found': True,
'title': top.get('title', ''),
'price': float(price_clean) if price_clean else 0,
'rating': top.get('rating', ''),
'url': top.get('link', ''),
}
for p in prods[:2]:
amazon = search_amazon_pricing(p['title'][:40])
if amazon['found']:
print(f" {p['title'][:30]}: Amazon ${amazon['price']}")Paso 4: Seguimiento de clasificaciones de búsqueda
Supervise la clasificación de los competidores según las palabras clave objetivo.
def track_rankings(keywords: list, competitor_domains: list) -> list:
rankings = []
for keyword in keywords:
resp = requests.post('https://api.scavio.dev/api/v1/search',
headers={'x-api-key': API_KEY},
json={'platform': 'google', 'query': keyword}, timeout=15)
results = resp.json().get('organic_results', [])
for i, r in enumerate(results):
link = r.get('link', '')
for domain in competitor_domains:
if domain in link:
rankings.append({
'keyword': keyword,
'competitor': domain,
'position': i + 1,
'title': r.get('title', ''),
'date': datetime.date.today().isoformat(),
})
time.sleep(0.3)
return rankings
domains = [c['domain'] for c in COMPETITORS]
rankings = track_rankings(['trendy t-shirts', 'custom hoodies'], domains)
for r in rankings:
print(f" #{r['position']}: {r['competitor']} for '{r['keyword']}'")Paso 5: Generar informe de la competencia
Produzca un informe diario que compare la actividad, los precios y las clasificaciones de la competencia.
def daily_report(competitors: list) -> str:
lines = [f'Competitor Report - {datetime.date.today().isoformat()}', '']
for comp in competitors:
lines.append(f'--- {comp["name"]} ({comp["domain"]}) ---')
products = search_competitor_products(comp)
lines.append(f' Products indexed: {len(products)}')
for p in products[:2]:
amazon = search_amazon_pricing(p['title'][:40])
price_info = f', Amazon: ${amazon["price"]}' if amazon.get('found') else ''
lines.append(f' - {p["title"][:40]}{price_info}')
lines.append('')
report = '\n'.join(lines)
# Save report
with open(f'competitor_report_{datetime.date.today().isoformat()}.txt', 'w') as f:
f.write(report)
print(report)
return report
daily_report(COMPETITORS)Ejemplo en Python
import requests, os
H = {'x-api-key': os.environ['SCAVIO_API_KEY']}
def track_competitor(domain, category):
data = requests.post('https://api.scavio.dev/api/v1/search', headers=H,
json={'platform': 'google', 'query': f'site:{domain} {category}'}).json()
return [{'title': r.get('title', ''), 'url': r.get('link', '')}
for r in data.get('organic_results', [])[:5]]
print(track_competitor('example.myshopify.com', 't-shirts'))Ejemplo en JavaScript
const H = {'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'};
async function trackCompetitor(domain, category) {
const r = await fetch('https://api.scavio.dev/api/v1/search', {
method: 'POST', headers: H,
body: JSON.stringify({platform: 'google', query: `site:${domain} ${category}`})
});
return ((await r.json()).organic_results || []).slice(0, 5)
.map(r => ({title: r.title, url: r.link}));
}
trackCompetitor('example.myshopify.com', 't-shirts').then(console.log);Salida esperada
A Shopify competitor tracking system that monitors product catalogs, compares Amazon pricing, tracks search rankings, and generates daily competitive intelligence reports.