La extracción de datos estructurados de sitios web normalmente requiere escribir raspadores personalizados para el diseño HTML de cada sitio. El punto final de extracción de Scavio toma una URL y devuelve contenido estructurado sin ningún código de análisis. Este tutorial muestra cómo extraer datos de páginas de productos, artículos y sitios web de empresas mediante una única llamada API.
Requisitos previos
- Python 3.8+ o Node.js 18+
- solicita biblioteca (Python) o recuperación integrada (JS)
- Una clave API de Scavio de scavio.dev
Guia paso a paso
Paso 1: Extraer contenido de una URL
Envíe una URL al punto final de extracción y reciba contenido estructurado.
import requests, os
H = {'x-api-key': os.environ['SCAVIO_API_KEY']}
def extract(url: str) -> dict:
resp = requests.post('https://api.scavio.dev/api/v1/extract',
headers=H, json={'url': url}, timeout=30)
return resp.json()
data = extract('https://example.com/product-page')
print(data)Paso 2: Extraiga varias URL por lotes
Procese una lista de URL y agregue los datos extraídos.
import time
def extract_batch(urls: list, delay: float = 0.5) -> list:
results = []
for url in urls:
try:
data = extract(url)
results.append({'url': url, 'status': 'ok', 'data': data})
except Exception as e:
results.append({'url': url, 'status': 'error', 'error': str(e)})
time.sleep(delay)
return results
urls = ['https://example.com/page1', 'https://example.com/page2']
extracted = extract_batch(urls)Paso 3: Combinar búsqueda + extracción para enriquecimiento
Busque empresas y luego extraiga datos estructurados de sus sitios web.
def search_and_extract(query: str) -> list:
# Search for relevant pages
search_resp = requests.post('https://api.scavio.dev/api/v1/search', headers=H,
json={'platform': 'google', 'query': query}, timeout=10)
results = search_resp.json().get('organic', [])[:3]
# Extract structured data from each result
enriched = []
for r in results:
try:
extracted = extract(r['link'])
enriched.append({'title': r['title'], 'url': r['link'], 'extracted': extracted})
except: pass
return enriched
data = search_and_extract('best CRM software pricing')Paso 4: Guardar datos extraídos
Exporte los datos extraídos para su procesamiento posterior.
import json
def save_extracted(data: list, filepath: str):
with open(filepath, 'w') as f:
json.dump(data, f, indent=2)
print(f'Saved {len(data)} extracted records to {filepath}')
save_extracted(extracted, 'extracted_data.json')Ejemplo en Python
import requests, os
H = {'x-api-key': os.environ['SCAVIO_API_KEY']}
def extract(url):
return requests.post('https://api.scavio.dev/api/v1/extract',
headers=H, json={'url': url}, timeout=30).json()
# Extract structured data from any URL:
data = extract('https://example.com/pricing')Ejemplo en JavaScript
async function extract(url) {
const resp = await fetch('https://api.scavio.dev/api/v1/extract', {
method: 'POST', headers: {'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'},
body: JSON.stringify({url})
});
return resp.json();
}Salida esperada
Structured data extracted from any URL via a single API call, with no custom parsing code needed.