/usr/bin/env python
# codificación: utf-8

# Automatización web y búsqueda de información con Python
#
# #### Challenge:
#
# Trabajamos en un importador y el precio de nuestros productos está ligado a la cotización de:
# – Dólar
# – Euro
# – Oro
#
# Necesitamos obtener en internet, de forma automática, la cotización de estos 3 artículos y saber cuánto debemos cobrar por nuestros productos, considerando un margen de contribución que tenemos en nuestra base de datos.
#
# Base de datos: https://drive.google.com/drive/folders/1KmAdo593nD8J9QBaZxPOG1yxHZua4Rtv?usp=sharing
#
# Para ello, crearemos una automatización web:
#
# – Usaremos selenio
# – Importante: descargar el webdriver

# En[30]:

# chromedriver -> Chrome
# geckodrive -> Firefox

from selenium import webdriver # crear el navegador
from selenium.webdriver.common.by import By # Buscar elementos – los elementos de un sitio
from selenium.webdriver.common.keys import Keys # permite pulsar las teclas del teclado

browser = webdriver.Chrome()

# Paso 1 – Ingresar a google
browser.get(«https://www.google.com/»)

# Paso 2 – Investigue el tipo de cambio del dólar
browser.find_element(By.XPATH, ‘/html/body/div[1]/div[3]/form/div[1]/div[1]/div/div[2]/input’).send_keys(«cotización del dólar»)
browser.find_element(By.XPATH, ‘/html/body/div[1]/div[3]/form/div[1]/div[1]/div/div[2]/input’).send_keys(Keys.ENTER)

# Paso 3 – Obtenga la cotización en dólares
quote_dolar = browser.find_element(By.XPATH, ‘//*[@id=»knowledge-currency__updatable-data-column»]/div[1]/div[2]/span[1]’).get_attribute(‘data-value’)
print(dólar_cita)

# Paso 4 – Obtener el tipo de cambio del euro
browser.get(«https://www.google.com/»)

browser.find_element(By.XPATH, ‘/html/body/div[1]/div[3]/form/div[1]/div[1]/div/div[2]/input’).send_keys(«euro quote»)

browser.find_element(By.XPATH, ‘/html/body/div[1]/div[3]/form/div[1]/div[1]/div/div[2]/input’).send_keys(Keys.ENTER)

quote_euro = browser.find_element(By.XPATH, ‘//*[@id=»knowledge-currency__updatable-data-column»]/div[1]/div[2]/span[1]’).get_attribute(‘data-value’)

print(cita_euro)

# Paso 5 – Obtener la cotización del oro
browser.get(«https://www.melhorcambio.com/ouro-hoje»)

quote_gold = browser.find_element(By.XPATH, ‘//*[@id=»comercial»]’).get_attribute(‘value’)
quote_gold = quote_gold.replace(«,»,».»)

print(cita_oro)

# En[31]:

# !pip install selenium

### Ahora vamos a actualizar nuestra base de precios con las nuevas cotizaciones

# – Importación de la base de datos

# En[32]:

# Paso 6 – Actualizar mi base de datos con las nuevas cotizaciones
importar pandas como pd

tabla = pd.read_excel(«Productos.xlsx»)
mostrar(tabla)

# – Actualización de los precios y cálculo del Precio Final

# En[33]:

# Actualizar la cotización según la moneda correspondiente
# dólar
# las filas en las que la columna «Moneda» = «Dólar
table.loc[tabela[‘Moeda’] == «Dólar», «Cotización»] = float(cotización_dólar)

# euro
table.loc[tabela[‘Moeda’] == «Euro», «Rate»] = float(rate_euro)

# oro
table.loc[tabela[‘Moeda’] == «Oro», «Cotización»] = float(cotización_oro)

# mantener el precio de compra = precio original * cotización
tabla[«Precio de compra»] = tabla[«Precio original»] * tabla[«Oferta»]

# actualizar el precio de venta = precio de compra * margen
tabla [«Precio de venta»] = tabla [«Precio de compra»] * tabla [«Margen»]
mostrar(tabla)

# Ahora vamos a exportar la nueva base de precios actualizada

# En[34]:

table.to_excel(«NuevosProductos.xlsx», index=False)
browser.quit()

# En[ ]: