🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
3.9 KiB
3.9 KiB
| id | title | type | epic | status | story_points | priority | project | created_date | updated_date |
|---|---|---|---|---|---|---|---|---|---|
| US-SCR-001 | Scraping de propiedades desde Inmuebles24 | User Story | IAI-007 | Draft | 13 | Alta | inmobiliaria-analytics | 2026-01-04 | 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
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
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
- Selectores: Usar selectores CSS robustos, evitar XPath fragiles
- Cloudflare: Esperar carga completa antes de extraer
- CAPTCHA: Si aparece frecuentemente, activar solver externo
- 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: -