https://github.com/fcoagz/pydolarvenezuela
Esta librería desarrollada en Python te brinda la capacidad de consultar los precios del dólar y/o euro en diversos monitores en Venezuela, también como las tasas de cambio del BCV.
https://github.com/fcoagz/pydolarvenezuela
bcv dolar dolar-cotizacion dolar-oficial dollar library pydolarvenezuela python scraping-python scraping-websites venezuela
Last synced: 8 months ago
JSON representation
Esta librería desarrollada en Python te brinda la capacidad de consultar los precios del dólar y/o euro en diversos monitores en Venezuela, también como las tasas de cambio del BCV.
- Host: GitHub
- URL: https://github.com/fcoagz/pydolarvenezuela
- Owner: fcoagz
- License: apache-2.0
- Created: 2023-03-31T14:57:43.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-01-17T03:35:55.000Z (11 months ago)
- Last Synced: 2025-03-28T21:46:18.410Z (8 months ago)
- Topics: bcv, dolar, dolar-cotizacion, dolar-oficial, dollar, library, pydolarvenezuela, python, scraping-python, scraping-websites, venezuela
- Language: Python
- Homepage: https://pypi.org/project/pyDolarVenezuela/
- Size: 757 KB
- Stars: 48
- Watchers: 6
- Forks: 11
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README

pyDolarVenezuela es una librería de Python diseñada para facilitar la obtención de los valores del dólar en distintos monitores en Venezuela. Esta herramienta te permite acceder a información actualizada proveniente de diversas páginas web que publican el valor del dólar en tiempo real:
| Página Web | URL | Estado
|------------|-------------|-------------|
| Exchange Monitor | https://exchangemonitor.net/dolar-venezuela |  |
| CriptoDolar | https://criptodolar.net/ |  |
| BCV (Banco Central de Venezuela) | http://www.bcv.org.ve/ |  |
| Italcambio | https://www.italcambio.com/ |  |
| Al Cambio | https://alcambio.app/ |  |
| DolarToday | https://dolartoday.com/ |  |
| EnParaleloVzla | https://t.me/enparalelovzlatelegram |  |
pyDolarVenezuela tiene como objetivo principal brindar una solución eficiente y confiable para acceder a información relevante sobre el valor del dólar en Venezuela, ofreciendo así una herramienta valiosa para desarrolladores interesados en trabajar en este ámbito.
## Características
### Base de datos
[](https://supabase.com)
pyDolarVenezuela utiliza [Supabase](https://supabase.com) para la integración de la base de datos Postgres. También puede implementar otro servidor de base de datos si lo prefiere o localmente.
```python
from pyDolarVenezuela import LocalDatabase, Database
local = LocalDatabase(
motor='sqlite',
url='database.db' # Ubicación de la base de datos
)
db_server = Database(
motor='postgresql',
host='postgres-cloud-host',
port='postgres-cloud-port',
user='postgres-cloud-user',
password='your-secure-password',
database='postgres-cloud-database-name'
)
```
**Nota:** Se pueda utilizar con SQLAlchemy.
### Almacenamiento en caché
Proporciona almacenamiento en caché integrado para una rápida recuperación de datos para mejorar el rendimiento al realizar solicitudes a la misma fuente. Puedes configurar el tiempo de espera si lo deseas.
```python
from datetime import timedelta
from pyDolarVenezuela import Monitor
monitor = Monitor(..., ttl=timedelta(minutes=5))
```
## Actividad

## Instalación
``` sh
pip install pyDolarVenezuela
```
## Uso
### Importación de las páginas
El módulo `pages`, encontrarás una variedad de atributos que contienen información sobre una página específica de la que deseas obtener los datos. Adicionalmente deberás importar la clase `Monitor`, cuyos parámetros será la página que deseas utilizar, la moneda en la que se expresarán los precios (`USD`, `EUR`) y entre otras.
```python
from pyDolarVenezuela.pages import AlCambio, BCV, CriptoDolar, DolarToday, ExchangeMonitor, EnParaleloVzla, Italcambio
from pyDolarVenezuela import Monitor
monitor = Monitor(AlCambio, 'USD')
```
Como se mencionó anteriormente, puede utilizar una base de datos (que es útil para calcular cambios, porcentajes, colores y símbolos).
El parámetro `currency` de la clase `Monitor` por defecto tiene el valor: `USD`, verifique que la página de la que desea obtener los datos pueda expresar precios en `EUR`.
```python
print(AlCambio.currencies)
>> ['usd']
```
### Métodos disponibles
#### `get_all_monitors`
Se utiliza para obtener todos los datos de los monitores que se encuentran en dicha página.
#### `get_value_monitors`
Se utiliza para obtener datos de un monitor específico y acceder a ellos fácilmente.
Argumentos:
- `type_monitor`: El código del monitor del cual se desea obtener información.
#### `get_prices_history`
Le permite obtener el historial de precios de cierre de un monitor específico.
Argumentos:
- `type_monitor`: El código del monitor del cual se desea obtener información.
- `start_date`: Fecha de inicio del historial.
- `end_date`: Fecha de fin del historial. Por defecto es la fecha actual.
#### `get_daily_price_monitor`
Le permite obtener todos los cambios realizados en un día para un monitor específico.
Argumentos:
- `type_monitor`: El código del monitor del cual se desea obtener información.
- `date`: Fecha de la cual se desea obtener los precios.
**Nota**: Para `get_prices_history` y `get_daily_price_monitor`. Debe establecer una base de datos y puede utilizarla siempre que mantenga el script activo y alimente la base de datos.
#### `currency_converter`
Convierte una cantidad de dinero de una moneda a otra utilizando los datos de un monitor específico.
Argumentos:
- `type`: Tipo de conversión. (VES, USD, EUR)
- `value`: Monto a convertir.
- `monitor`: La data del monitor una vez obtenido sus datos.
### Código de ejemplo
```python
from pyDolarVenezuela.pages import AlCambio, BCV, CriptoDolar, DolarToday, ExchangeMonitor, EnParaleloVzla, Italcambio
from pyDolarVenezuela import Monitor, Database, currency_converter
db = Database(...)
monitor = Monitor(AlCambio, 'USD', db=db)
# Obtener los valores de todos los monitores
all_monitors = monitor.get_all_monitors()
# Obtener el valor del dólar en EnParaleloVzla
paralelo = monitor.get_value_monitors("enparalelovzla")
last_update = paralelo.price
# Obtener el historial de precios de un monitor durante una semana.
history = monitor.get_prices_history("enparalelovzla", "01-07-2024", "05-07-2024")
# Obtener todos los cambios que se realizaron de un monitor.
changes = monitor.get_daily_price_monitor("enparalelovzla", "30-07-2024")
# "history", "changes". Obtendrá una lista de objetos.
# Conversion
data_paralelo = monitor.get_value_monitors("enparalelovzla")
price_in_dolares = currency_converter(
type='VES', # VES | USD | EUR
value=1000, # Bs. 1000
monitor=information_dolar # Datos del dolar
)
```
### Configuración de fecha
Respetando el tipado de las fechas. Te muestro cómo puedes formatearlo.
**Nota**: La fecha y la hora se almacenan internamente en UTC, por lo que puede especificar la zona horaria que desea mostrar cuando se actualizó el monitor por última vez.
```python
from datetime import datetime
from pytz import timezone
from pyDolarVenezuela.pages import AlCambio
from pyDolarVenezuela import Monitor
zone = timezone('America/Caracas')
monitor = Monitor(AlCambio, 'USD')
paralelo = monitor.get_value_monitors("enparalelovzla")
last_update_dt = paralelo.last_update
last_update_ve = last_update_dt.astimezone(zone)
formatted_last_update = last_update_ve.strftime('%d/%m/%Y, %I:%M %p')
print(formatted_last_update)
```
`formatted_last_update` Especifica cómo se debe formatear la fecha como una cadena.
## Contributores