Los sitios web gubernamentales contienen datos valiosos para la generación de oportunidades de venta (empresas con licencia), la investigación de cumplimiento (presentaciones reglamentarias) y la inteligencia de mercado (registros públicos). Pero los sitios gubernamentales son notoriamente difíciles de eliminar: diseños inconsistentes, protecciones anti-bot y ninguna API. Este tutorial utiliza el punto final de Google de Scavio con consultas restringidas al sitio para buscar en bases de datos gubernamentales y extraer resultados estructurados sin raspar.
Requisitos previos
- Python 3.8+ instalado
- solicita biblioteca instalada
- Una clave API de Scavio de scavio.dev
Guia paso a paso
Paso 1: Buscar un dominio gubernamental específico
Utilice sitio: operador para restringir las búsquedas a un sitio web gubernamental.
import requests, os
H = {'x-api-key': os.environ['SCAVIO_API_KEY']}
def search_gov(query: str, gov_domain: str) -> list:
resp = requests.post('https://api.scavio.dev/api/v1/search', headers=H,
json={'platform': 'google', 'query': f'site:{gov_domain} {query}'}, timeout=10)
return resp.json().get('organic', [])
# Search Florida business licenses:
results = search_gov('contractor license', 'myfloridalicense.com')
for r in results[:5]:
print(f"{r['title']}: {r['link']}")Paso 2: Búsqueda en múltiples fuentes gubernamentales
Consulte varios dominios gubernamentales para obtener resultados completos.
GOV_SOURCES = {
'florida_licenses': 'myfloridalicense.com',
'sec_filings': 'sec.gov',
'fda_approvals': 'fda.gov',
'patent_office': 'patents.google.com',
'census': 'census.gov',
}
def multi_gov_search(query: str) -> dict:
results = {}
for name, domain in GOV_SOURCES.items():
results[name] = search_gov(query, domain)
return resultsPaso 3: Extraer clientes potenciales comerciales con licencia
Busque en bases de datos de licencias estatales empresas de un sector específico.
def find_licensed_businesses(trade: str, state_domain: str) -> list:
results = search_gov(f'{trade} active license', state_domain)
leads = []
for r in results:
leads.append({
'name': r.get('title', ''),
'url': r.get('link', ''),
'snippet': r.get('snippet', ''),
})
return leads
# Find licensed contractors in Florida:
contractors = find_licensed_businesses('general contractor', 'myfloridalicense.com')
print(f'Found {len(contractors)} licensed contractors')Paso 4: Combinar con enriquecimiento para divulgación
Enriquezca los clientes potenciales de datos gubernamentales con la búsqueda web de información de contacto.
def enrich_gov_lead(lead: dict) -> dict:
# Search for the business name to find their website and contact info
resp = requests.post('https://api.scavio.dev/api/v1/search', headers=H,
json={'platform': 'google', 'query': lead['name']}, timeout=10)
web_results = resp.json().get('organic', [])[:3]
lead['website'] = web_results[0].get('link', '') if web_results else ''
lead['web_snippet'] = web_results[0].get('snippet', '') if web_results else ''
return lead
enriched = [enrich_gov_lead(l) for l in contractors[:10]]Ejemplo en Python
import requests, os
H = {'x-api-key': os.environ['SCAVIO_API_KEY']}
def search_gov(query, domain):
data = requests.post('https://api.scavio.dev/api/v1/search', headers=H,
json={'platform': 'google', 'query': f'site:{domain} {query}'}, timeout=10).json()
return data.get('organic', [])Ejemplo en JavaScript
async function searchGov(query, domain) {
const data = await fetch('https://api.scavio.dev/api/v1/search', {
method: 'POST', headers: {'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'},
body: JSON.stringify({platform: 'google', query: `site:${domain} ${query}`})
}).then(r => r.json());
return data.organic || [];
}Salida esperada
Structured search results from government databases, usable for lead generation, compliance research, and market intelligence.