🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
180 lines
3.9 KiB
Markdown
180 lines
3.9 KiB
Markdown
---
|
|
id: "US-SCR-001"
|
|
title: "Scraping de propiedades desde Inmuebles24"
|
|
type: "User Story"
|
|
epic: "IAI-007"
|
|
status: "Draft"
|
|
story_points: 13
|
|
priority: "Alta"
|
|
project: "inmobiliaria-analytics"
|
|
created_date: "2026-01-04"
|
|
updated_date: "2026-01-04"
|
|
---
|
|
|
|
# US-SCR-001: Scraping de propiedades desde Inmuebles24
|
|
|
|
---
|
|
|
|
## User Story
|
|
|
|
**Como** administrador del sistema
|
|
**Quiero** que el sistema extraiga automaticamente propiedades de Inmuebles24
|
|
**Para** tener datos actualizados del mercado inmobiliario mexicano
|
|
|
|
---
|
|
|
|
## Descripcion
|
|
|
|
Implementar un scraper robusto que extraiga listados de propiedades del portal Inmuebles24, manejando la proteccion de Cloudflare y respetando las politicas de rate limiting para evitar bloqueos.
|
|
|
|
---
|
|
|
|
## Criterios de Aceptacion
|
|
|
|
### Funcionales
|
|
|
|
- [ ] El scraper puede navegar y extraer listados de propiedades
|
|
- [ ] Extrae todos los campos requeridos (precio, ubicacion, caracteristicas)
|
|
- [ ] Maneja paginacion hasta el limite configurado
|
|
- [ ] Almacena datos raw en formato JSON
|
|
|
|
### Tecnicos
|
|
|
|
- [ ] Usa Playwright con stealth mode
|
|
- [ ] Rotacion de proxies residenciales
|
|
- [ ] Delay configurable entre requests (2-5s base)
|
|
- [ ] Manejo de reintentos con backoff exponencial
|
|
|
|
### Anti-detection
|
|
|
|
- [ ] Simula comportamiento humano (scroll, delays)
|
|
- [ ] User-Agent rotativo y realista
|
|
- [ ] Maneja desafios de Cloudflare Turnstile
|
|
- [ ] Respeta robots.txt (paginas 1-5 inicialmente)
|
|
|
|
---
|
|
|
|
## Campos a Extraer
|
|
|
|
```yaml
|
|
Requeridos:
|
|
- source_id: ID interno de Inmuebles24
|
|
- source_url: URL de la propiedad
|
|
- title: Titulo del anuncio
|
|
- price: Precio (numerico)
|
|
- currency: MXN/USD
|
|
- property_type: casa/departamento/terreno/etc
|
|
- transaction_type: venta/renta
|
|
- bedrooms: Recamaras
|
|
- bathrooms: Banos
|
|
- construction_m2: Metros construidos
|
|
- land_m2: Metros de terreno
|
|
- address: Direccion
|
|
- neighborhood: Colonia
|
|
- city: Ciudad
|
|
- state: Estado
|
|
- description: Descripcion completa
|
|
|
|
Opcionales:
|
|
- parking_spaces: Estacionamientos
|
|
- age_years: Antiguedad
|
|
- amenities: Lista de amenidades
|
|
- images: URLs de imagenes
|
|
- latitude: Coordenada
|
|
- longitude: Coordenada
|
|
```
|
|
|
|
---
|
|
|
|
## Tareas Tecnicas
|
|
|
|
| # | Tarea | Estimacion |
|
|
|---|-------|------------|
|
|
| 1 | Setup Playwright + stealth plugins | 2h |
|
|
| 2 | Implementar navegacion de listados | 4h |
|
|
| 3 | Parser de detalle de propiedad | 4h |
|
|
| 4 | Integracion con proxy pool | 3h |
|
|
| 5 | Rate limiting y delays | 2h |
|
|
| 6 | Manejo de errores y reintentos | 3h |
|
|
| 7 | Storage de raw data (S3/local) | 2h |
|
|
| 8 | Tests unitarios y de integracion | 4h |
|
|
|
|
**Total estimado:** 24h (~3 dias)
|
|
|
|
---
|
|
|
|
## Configuracion
|
|
|
|
```yaml
|
|
scraper_config:
|
|
source: inmuebles24
|
|
base_url: https://www.inmuebles24.com
|
|
|
|
targets:
|
|
cities:
|
|
- guadalajara
|
|
- monterrey
|
|
- ciudad-de-mexico
|
|
property_types:
|
|
- casas
|
|
- departamentos
|
|
|
|
limits:
|
|
max_pages_per_city: 5
|
|
max_properties_per_run: 500
|
|
delay_ms:
|
|
min: 2000
|
|
max: 5000
|
|
|
|
proxy:
|
|
type: residential
|
|
rotate_every: session
|
|
|
|
retry:
|
|
max_attempts: 3
|
|
backoff_multiplier: 2
|
|
```
|
|
|
|
---
|
|
|
|
## Notas de Implementacion
|
|
|
|
1. **Selectores**: Usar selectores CSS robustos, evitar XPath fragiles
|
|
2. **Cloudflare**: Esperar carga completa antes de extraer
|
|
3. **CAPTCHA**: Si aparece frecuentemente, activar solver externo
|
|
4. **Logs**: Logging detallado para debugging
|
|
|
|
---
|
|
|
|
## Definition of Done
|
|
|
|
- [ ] Codigo implementado y revisado
|
|
- [ ] Tests pasan (unit + integracion)
|
|
- [ ] Scraper extrae 500+ propiedades sin bloqueos
|
|
- [ ] Documentacion actualizada
|
|
- [ ] Metricas de exito > 80%
|
|
|
|
---
|
|
|
|
## Dependencias
|
|
|
|
- Proxy pool configurado (US-SCR-000)
|
|
- Redis para Bull Queue
|
|
- Storage S3/local para raw data
|
|
|
|
---
|
|
|
|
## Riesgos
|
|
|
|
| Riesgo | Mitigacion |
|
|
|--------|------------|
|
|
| Cambios en HTML | Alertas + selectores flexibles |
|
|
| Rate limit | Delay adaptativo |
|
|
| IP ban | Pool de proxies amplio |
|
|
|
|
---
|
|
|
|
**Asignado a:** -
|
|
**Sprint:** -
|
|
**Fecha limite:** -
|