Skip to content

yassppy/sunat_scraper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 SUNAT Scraper

Este proyecto es una solución basada en FastAPI y Playwright diseñada para automatizar la extracción de datos desde los portales oficiales de la SUNAT. Permite consultar información de contribuyentes (RUC/DNI) y el tipo de cambio oficial, integrando capacidades de procesamiento de documentos con IA.

🛠️ Tecnologías Principales

  • FastAPI: Framework web moderno y de alto rendimiento para la construcción de la API.
  • Playwright: Herramienta de automatización de navegación que actúa como un "asistente virtual" manejando el navegador de forma programática.
  • SQLModel: Para la interacción fluida con la base de datos (PostgreSQL/SQLite).
  • Gemini: Utilizados para la conversión y estructuración de datos desde archivos PDF (Tipo de Cambio) a formato JSON.
  • UV: Gestor de paquetes y entorno de Python ultrarrápido.

📋 Características

  • 🔍 Consulta de RUC: Extracción directa de datos de contribuyentes.
  • 🔍 Consulta por DNI: Flujo automatizado para encontrar RUCs asociados a una persona natural.
  • 💱 Tipo de Cambio: Obtención del tipo de cambio diario y conversión de reportes PDF a JSON.
  • 💾 Persistencia: Almacenamiento local de consultas para optimizar tiempos de respuesta y reducir carga a los servidores de SUNAT.

📥 Instalación

El proyecto utiliza uv para una gestión de dependencias eficiente. Debe contar con uv instalado.

  1. Asegúrate de tener uv instalado:

    pip install uv
  2. Instalar dependencias y preparar el entorno:

    uv sync
    uv run playwright install chromium

🚀 Uso (Ejecución)

Para iniciar con el servidor de FastAPI:

uv run uvicorn app.main:app --reload

Una vez iniciado, puedes acceder a la documentación interactiva en:

  • Swagger UI: http://127.0.0.1:8000/docs

Para iniciar con el testeo del curso:

uv run pytest curso/test_02_locators.py --headed -s

📡 Endpoints Principales

Proveedores (SUNAT)

  • GET /sunat/ruc/{tax_id}: Busca en DB local o scrapea si no existe.
  • POST /sunat/ruc/{tax_id}: Fuerza la actualización de datos desde SUNAT.
  • GET /sunat/dni/{dni}: Busca RUCs asociados a un DNI específico.
  • POST /sunat/dni/{dni}: Actualiza la información del RUC asociado al DNI.

Tipo de Cambio

  • GET /sunat/tipo-cambio: Obtiene el tipo de cambio del día procesado vía IA.

🔗 Referencias Útiles


Desarrollado con fines de automatización y eficiencia en la gestión de datos fiscales.*


About

ApiRestFull para extraer datos de sunat, consultar ruc o dni y tipo de cambio.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages