Una única lista de Google Maps le brinda nombre, dirección y calificación. Agregar el sentimiento de reseñas de Google, las menciones de Reddit y los productos relacionados de Amazon convierte a un cliente potencial débil en un cliente potencial calificado. Este canal enriquece los registros de empresas locales desde tres plataformas de búsqueda a través de una clave API de Scavio a 0,005 dólares por consulta, creando un perfil multidimensional para cada empresa.
Requisitos previos
- Python 3.8+
- solicita biblioteca
- Una clave API de Scavio de scavio.dev
- Una lista de empresas o ubicaciones para enriquecer
Guia paso a paso
Paso 1: Busque empresas locales en Google
Encuentre empresas locales por categoría y ubicación.
import os, requests, json
API_KEY = os.environ['SCAVIO_API_KEY']
SH = {'x-api-key': API_KEY, 'Content-Type': 'application/json'}
def find_businesses(category, location, limit=10):
data = requests.post('https://api.scavio.dev/api/v1/search',
headers=SH, json={'query': f'{category} in {location}', 'country_code': 'us'}).json()
places = data.get('local_results', data.get('organic_results', []))[:limit]
businesses = []
for p in places:
businesses.append({
'name': p.get('title', p.get('name', '')),
'address': p.get('address', ''),
'rating': p.get('rating', 'N/A'),
'reviews': p.get('reviews', 0),
'link': p.get('link', '')
})
print(f'{category} in {location}: {len(businesses)} found')
return businesses
businesses = find_businesses('coffee shops', 'Austin TX')
for b in businesses[:3]: print(f' {b["name"]} - {b["rating"]} ({b["reviews"]} reviews)')Paso 2: Enriquece con el sentimiento de Reddit
Busque menciones en Reddit y extraiga señales de sentimiento.
def reddit_sentiment(business_name, location):
data = requests.post('https://api.scavio.dev/api/v1/search',
headers=SH, json={'query': f'{business_name} {location}', 'platform': 'reddit', 'country_code': 'us'}).json()
results = data.get('organic_results', [])[:5]
positive = negative = neutral = 0
mentions = []
for r in results:
snippet = r.get('snippet', '').lower()
if any(w in snippet for w in ['great', 'love', 'best', 'amazing', 'recommend']):
positive += 1
elif any(w in snippet for w in ['bad', 'terrible', 'avoid', 'worst', 'overpriced']):
negative += 1
else: neutral += 1
mentions.append(r.get('snippet', '')[:100])
return {'mentions': len(results), 'positive': positive, 'negative': negative,
'neutral': neutral, 'quotes': mentions[:3]}
for b in businesses[:3]:
sent = reddit_sentiment(b['name'], 'Austin')
b['reddit'] = sent
print(f' {b["name"]}: {sent["mentions"]} mentions (pos={sent["positive"]}, neg={sent["negative"]})')Paso 3: Agregar datos de productos relacionados de Amazon
Encuentre productos que la empresa pueda tener en stock o con los que pueda competir.
def related_products(business_name, category):
data = requests.post('https://api.scavio.dev/api/v1/search',
headers=SH, json={'query': f'{category} {business_name}', 'platform': 'amazon', 'country_code': 'us'}).json()
products = data.get('organic_results', data.get('shopping_results', []))[:3]
return [{'title': p.get('title', '')[:50], 'price': p.get('price', 'N/A'),
'rating': p.get('rating', 'N/A')} for p in products]
for b in businesses[:3]:
prods = related_products(b['name'], 'coffee')
b['amazon_products'] = prods
if prods: print(f' {b["name"]}: {len(prods)} related products (top: {prods[0]["title"][:40]})')Paso 4: Generar perfiles enriquecidos
Combine todas las fuentes en un único perfil enriquecido por empresa.
def enrich_batch(category, location, limit=5):
businesses = find_businesses(category, location, limit)
queries = 0
queries += 1 # initial search
for b in businesses:
b['reddit'] = reddit_sentiment(b['name'], location)
queries += 1
b['amazon_products'] = related_products(b['name'], category)
queries += 1
cost = queries * 0.005
print(f'\nEnriched {len(businesses)} businesses ({queries} queries, ${cost:.3f})')
for b in businesses:
r = b.get('reddit', {})
print(f'\n {b["name"]}')
print(f' Google: {b["rating"]} ({b["reviews"]} reviews)')
print(f' Reddit: {r.get("mentions", 0)} mentions, sentiment: +{r.get("positive", 0)}/-{r.get("negative", 0)}')
print(f' Amazon: {len(b.get("amazon_products", []))} related products')
with open('enriched.json', 'w') as f: json.dump(businesses, f, indent=2)
print(f'\nSaved to enriched.json')
return businesses
enrich_batch('coffee shops', 'Austin TX', 3)Ejemplo en Python
import os, requests
SH = {'x-api-key': os.environ['SCAVIO_API_KEY'], 'Content-Type': 'application/json'}
def enrich(biz, location):
g = requests.post('https://api.scavio.dev/api/v1/search',
headers=SH, json={'query': f'{biz} {location}', 'country_code': 'us'}).json()
r = requests.post('https://api.scavio.dev/api/v1/search',
headers=SH, json={'query': f'{biz} {location}', 'platform': 'reddit', 'country_code': 'us'}).json()
top = (g.get('organic_results') or [{}])[0]
mentions = len(r.get('organic_results', []))
print(f'{biz}: {top.get("rating", "N/A")} rating, {mentions} Reddit mentions. Cost: $0.010')
enrich('Houndstooth Coffee', 'Austin TX')Ejemplo en JavaScript
const SH = { 'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json' };
async function enrich(biz, location) {
const [g, r] = await Promise.all([
fetch('https://api.scavio.dev/api/v1/search', { method: 'POST', headers: SH,
body: JSON.stringify({ query: `${biz} ${location}`, country_code: 'us' }) }).then(r => r.json()),
fetch('https://api.scavio.dev/api/v1/search', { method: 'POST', headers: SH,
body: JSON.stringify({ query: `${biz} ${location}`, platform: 'reddit', country_code: 'us' }) }).then(r => r.json()),
]);
const top = (g.organic_results || [{}])[0];
console.log(`${biz}: ${top.rating||'N/A'} rating, ${(r.organic_results||[]).length} Reddit mentions`);
}
enrich('Houndstooth Coffee', 'Austin TX').catch(console.error);Salida esperada
coffee shops in Austin TX: 8 found
Houndstooth Coffee - 4.6 (1,234 reviews)
Epoch Coffee - 4.4 (892 reviews)
Fleet Coffee - 4.7 (567 reviews)
Enriched 3 businesses (7 queries, $0.035)
Houndstooth Coffee
Google: 4.6 (1,234 reviews)
Reddit: 4 mentions, sentiment: +3/-0
Amazon: 2 related products
Epoch Coffee
Google: 4.4 (892 reviews)
Reddit: 2 mentions, sentiment: +1/-1
Amazon: 3 related products
Saved to enriched.json