Files
SpiderBrand/docs/05-proyecto-website-craw-css.md
2026-05-09 17:49:37 +00:00

126 lines
3.8 KiB
Markdown

# 📋 Documento del Proyecto — Website Craw CSS
> ← [Anterior: 🕷️ Crawl4AI](./04-crawl4ai-ubuntu.md) | [Volver al índice](../README.md)
---
## 1. Iniciación
| Campo | Detalle |
|-------|---------|
| **Objetivo** | Automatizar la extracción de productos desde páginas web mediante Crawl4AI, procesar los datos con n8n y exportarlos en formato usable (JSON/archivo) |
| **Stakeholders** | Equipo de datos/marketing *(consumirá los resultados)*, equipo de IT *(mantendrá el flujo en n8n)* |
| **Justificación** | Reducir esfuerzo manual en scraping, garantizar consistencia de datos y preparar pipeline para análisis en Google Sheets u otras herramientas |
---
## 2. Planificación
### Requerimientos técnicos
- Servidor con n8n instalado (Ubuntu/Docker)
- Conexión a Crawl4AI
- Credenciales: `httpBasicAuth` y `httpHeaderAuth`
- Acceso a Google Sheets (OAuth2 configurado)
### Alcance
- Número de URLs a escanear: `Array.from({ length: 2 })` → 2 páginas por ahora, escalable
- **Campos a extraer**: `link`, `título`, `rating` (conteo de estrellas), `descripción`, `precio`, `stock`
### Riesgos
| Riesgo | Descripción |
|--------|-------------|
| 🔴 Bloqueo de IP | Crawling excesivo puede resultar en bloqueo por el sitio objetivo |
| 🟡 Cambio en HTML | Si la estructura de la web cambia, los selectores CSS deben actualizarse |
| 🟡 Fallos de credenciales | Acceso perdido a Crawl4AI o Google Sheets interrumpe el flujo |
---
## 3. Diseño y Arquitectura
### Flujo de nodos en n8n
```
Manual Trigger
Markdown Crawl Request ──► POST a Crawl4AI con URLs + esquema JSON-CSS
Wait (15s) ──────────────► Pausa mientras Crawl4AI procesa
Get LLM Crawl ───────────► Recupera resultados por task_id
LLM if In Process ───────► ¿Sigue en estado "pending/processing"?
│ │
[Sí] [No]
│ │
└─────────┤
LLM Result ──────► Convierte rating a número (star_count)
Split Out ──────► Divide resultados por producto
Convert to File ───► Exporta a archivo final (JSON/CSV)
[Opcional] Google Sheets ── (deshabilitado por defecto)
```
**Tipo de arquitectura**: Workflow asincrónico con polling + procesamiento + exportación.
---
## 4. Ejecución / Desarrollo
### Implementación inicial
1. Configurar credenciales: `crawl4aiserver`, `panel`, Google Sheets.
2. Probar con dataset pequeño (2 páginas) para validar selectores CSS.
### Edición futura
- Ampliar `Array.from({ length: N })` para procesar más páginas.
- Ajustar `baseSelector` y `fields` si cambia la estructura web.
- Habilitar el módulo de Google Sheets para registro en línea.
---
## 5. Monitoreo y Control
### Logs
Revisar ejecuciones en: **n8n → Execution History**
### KPIs
| Indicador | Descripción |
|-----------|-------------|
| % productos extraídos | Porcentaje de productos extraídos correctamente por batch |
| Tiempo de procesamiento | Tiempo promedio por batch de páginas |
### Control de cambios
- Antes de editar `schema.fields`, probar en ambiente de desarrollo.
- Documentar versiones del flujo (`versionId` ya está incluido en el JSON de n8n).
---
## 6. Cierre / Entrega
| Entregable | Formato |
|------------|---------|
| Archivo de productos estructurados | JSON o CSV |
| Exportación automática | Google Drive / Google Sheets |
| Documentación de uso | Este repositorio |
---
> ← [Anterior: 🕷️ Crawl4AI](./04-crawl4ai-ubuntu.md) | [Volver al índice](../README.md)