xtweet

Es una biblioteca que te permite interactuar de manera eficiente con la API de Twitter.


Keywords
api, twitter, social, media, data, extraction, download, python, bcv, dolar, dolar-cotizacion, dolar-oficial, dollar, library, pydolarvenezuela, scraping-python, scraping-websites, venezuela
License
MIT
Install
pip install xtweet==1.0.0

Documentation

Portada pyDolarVenezuela

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 Active
CriptoDolar https://criptodolar.net/ Active
BCV (Banco Central de Venezuela) http://www.bcv.org.ve/ Active
Italcambio https://www.italcambio.com/ Active
Al Cambio https://alcambio.app/ Active
DolarToday https://dolartoday.com/ Active
EnParaleloVzla https://t.me/enparalelovzlatelegram Active

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

Made with Supabase

pyDolarVenezuela utiliza Supabase 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.

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.

from datetime import timedelta
from pyDolarVenezuela import Monitor

monitor = Monitor(..., ttl=timedelta(minutes=5))

Actividad

Alt

Instalaci贸n

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.

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.

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

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.

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