# SIS Scraper 🏥

Librería Python para consultas con anti-detección y caché.

## Características

- ✅ **Anti-detección**: User-Agent rotation, headers spoofing, delays aleatorios
- ✅ **Caché SQLite**: Guarda resultados por 1 año (configurable)
- ✅ **OCR automático**: Resuelve CAPTCHAs con ddddocr + OpenCV
- ✅ **Reintentos automáticos**: Si falla el captcha, reintenta

## Instalación

```bash
# Desde el directorio del proyecto
pip install -e .

# O instalación normal
pip install .
```

## Uso Rápido

```python
from sis_scraper import SisScraperAntiDeteccion

# Crear scraper
scraper = SisScraperAntiDeteccion()

# Consultar DNI (con reintentos automáticos)
resultado = scraper.consultar_con_reintentos("12345678")

if resultado["exito"]:
    print(f"Nombre: {resultado['datos_personales']['nombre']}")
    print(f"Estado: {resultado['datos_personales']['estado']}")
```

## Uso como CLI

```bash
# Si instalaste el paquete
sis-scraper

# O directamente
python -m sis_scraper.scraper
```

## Configuración

```python
# Cambiar duración del caché (en horas)
scraper = SisScraperAntiDeteccion(cache_horas=720)  # 30 días

# Cambiar ubicación de la base de datos
scraper = SisScraperAntiDeteccion(db_path="/ruta/mi_cache.db")
```

## Estructura del Resultado

```json
{
  "exito": true,
  "mensaje": "Consulta exitosa",
  "datos_personales": {
    "nombre": "APELLIDO APELLIDO NOMBRE",
    "documento": "DNI 12345678",
    "afiliacion": "2-12345678",
    "tipo_asegurado": "TITULAR",
    "estado": "ACTIVO"
  },
  "afiliaciones": [...]
}
```

## Dependencias

- requests
- beautifulsoup4
- ddddocr
- opencv-python
- Pillow
- lxml
- fake-useragent (opcional)

## Licencia

MIT
