Cliente Python para obtener datos del BCV con trazabilidad y cumplimiento legal
Project description
📈 Scraper BCV – Tasas de Cambio
Este proyecto implementa un scraper defensivo para obtener las tasas de cambio publicadas por el Banco Central de Venezuela (BCV), con validación de datos, logging estructurado y tolerancia a cambios en el HTML.
Incluye pruebas automatizadas con pytest que simulan escenarios reales y cambios en la estructura del sitio, asegurando que el scraper siga funcionando y registre advertencias cuando falten datos.
📂 Estructura del proyecto
scraper-bcv/
.
├── LICENSE
├── pyproject.toml
├── README.md
├── requirements.txt
├── requirements-dev.txt
├── setup.cfg
├── src/
│ └── scraper_bcv/ # Paquete principal
│ ├── __init__.py
│ ├── __main__.py # Punto de entrada: python -m scraper_bcv
│ ├── bcv_client.py # Lógica principal del scraper
├── tests/ # Pruebas unitarias y fixtures
│ ├── fixtures/
│ └── test_bcv_client.py
🚀 Instalación
Desde GitHub
pip install git+https://github.com/fquivera/scraper-bcv.git
Desde PyPI (cuando esté publicado)
pip install scraper-bcv
🛠 Uso como script
Una vez instalado, puedes ejecutarlo directamente:
python -m scraper_bcv
Opciones disponibles:
python -m scraper_bcv -m USD --log-level DEBUG --log-file logs/mi_log.log
📚 Uso como librería
from scraper_bcv import BCVClient
client = BCVClient(log_file='logs/mi_app.log')
print(client.get_tasas()) # Todas las monedas
print(client.get_tasas('USD')) # Solo USD
🧪 Pruebas
pytest -v
Incluye pruebas con HTML real y HTML modificado para validar resiliencia y logging.
📜 Logging
- Formato:
YYYY-MM-DD HH:MM:SS NIVEL Mensaje - Ejemplo:
2025-09-04 18:00:00 INFO USD: 36,5000 Bs.S - Fecha: 04/09/2025
🔒 Diseño defensivo
- Sigue funcionando aunque falte una moneda.
- Registra advertencias en lugar de fallar silenciosamente.
- Valida y normaliza datos antes de procesarlos.
- Modular y testeable.
⚖️ Aviso Legal
Este software se proporciona únicamente con fines educativos y técnicos.
No constituye ni reemplaza la publicación oficial de tasas del Banco Central de Venezuela (BCV) ni de ninguna otra autoridad.
Los datos obtenidos son procesados automáticamente desde fuentes públicas y pueden no reflejar información actualizada, exacta o completa.
El autor no asume responsabilidad por el uso que terceros hagan de este software o de los datos que genere.
Es responsabilidad exclusiva del usuario verificar la exactitud y vigencia de la información antes de tomar decisiones basadas en ella, así como cumplir con la normativa legal vigente en su país.
Para información oficial sobre tasas de cambio, consulte siempre el portal del BCV:
https://www.bcv.org.ve/
📄 Licencia
Distribuido bajo la licencia MIT con aviso legal adicional.
Consulta el archivo LICENSE para más detalles.
🤝 Contribuciones
Las contribuciones son bienvenidas mediante issues o pull requests.
📬 Contacto
Desarrollado por Francisco Antonio Quivera González.
Abre un issue en el repositorio para dudas o sugerencias.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file scraper_bcv-0.1.1.tar.gz.
File metadata
- Download URL: scraper_bcv-0.1.1.tar.gz
- Upload date:
- Size: 7.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b2acb3b49aca31006147a65bbb795ee81f7f0338aabef28350ca643411d26c82
|
|
| MD5 |
90fc78bc0acd47863fb61c949b5c8b34
|
|
| BLAKE2b-256 |
b5b259084f27230e8fe59a9e1be467e90f11bf30fb3675a397b5bf1e25f3eab8
|
File details
Details for the file scraper_bcv-0.1.1-py3-none-any.whl.
File metadata
- Download URL: scraper_bcv-0.1.1-py3-none-any.whl
- Upload date:
- Size: 7.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d9f5acbb13d32fa44a6d44dca601b2ee16f05de786a0ef685ad258d6a5f40be0
|
|
| MD5 |
2e5ed410ac1411a550cf37f11630932a
|
|
| BLAKE2b-256 |
4ad2f08a4b924e4c23f65bf5cf236d712aa9831926e8fada52e61307ca154dda
|