#!/usr/bin/env python
# coding: utf-8
# # Automação Web e Busca de Informações com Python
#
# #### Desafio:
#
# Trabalhamos em uma importadora e o preço dos nossos produtos é vinculado a cotação de:
# – Dólar
# – Euro
# – Ouro
#
# Precisamos pegar na internet, de forma automática, a cotação desses 3 itens e saber quanto devemos cobrar pelos nossos produtos, considerando uma margem de contribuição que temos na nossa base de dados.
#
# Base de Dados: https://drive.google.com/drive/folders/1KmAdo593nD8J9QBaZxPOG1yxHZua4Rtv?usp=sharing
#
# Para isso, vamos criar uma automação web:
#
# – Usaremos o selenium
# – Importante: baixar o webdriver
# In[30]:
# chromedriver -> Chrome
# geckodrive -> Firefox
from selenium import webdriver # criar o navegador
from selenium.webdriver.common.by import By # Localizar elementos – os itens de um site
from selenium.webdriver.common.keys import Keys # permite clicar teclas no teclado
navegador = webdriver.Chrome()
# Passo 1 – Entrar no google
navegador.get(“https://www.google.com/”)
# Passo 2 – Pesquisar a cotação do Dólar
navegador.find_element(By.XPATH, ‘/html/body/div[1]/div[3]/form/div[1]/div[1]/div[1]/div/div[2]/input’).send_keys(“cotação dólar”)
navegador.find_element(By.XPATH, ‘/html/body/div[1]/div[3]/form/div[1]/div[1]/div[1]/div/div[2]/input’).send_keys(Keys.ENTER)
# Passo 3 – Pegar a cotação do Dólar
cotacao_dolar = navegador.find_element(By.XPATH, ‘//*[@id=”knowledge-currency__updatable-data-column”]/div[1]/div[2]/span[1]’).get_attribute(‘data-value’)
print(cotacao_dolar)
# Passo 4 – Pegar a cotação do Euro
navegador.get(“https://www.google.com/”)
navegador.find_element(By.XPATH, ‘/html/body/div[1]/div[3]/form/div[1]/div[1]/div[1]/div/div[2]/input’).send_keys(“cotação euro”)
navegador.find_element(By.XPATH, ‘/html/body/div[1]/div[3]/form/div[1]/div[1]/div[1]/div/div[2]/input’).send_keys(Keys.ENTER)
cotacao_euro = navegador.find_element(By.XPATH, ‘//*[@id=”knowledge-currency__updatable-data-column”]/div[1]/div[2]/span[1]’).get_attribute(‘data-value’)
print(cotacao_euro)
# Passo 5 – Pegar a cotação do Ouro
navegador.get(“https://www.melhorcambio.com/ouro-hoje”)
cotacao_ouro = navegador.find_element(By.XPATH, ‘//*[@id=”comercial”]’).get_attribute(‘value’)
cotacao_ouro = cotacao_ouro.replace(“,”,”.”)
print(cotacao_ouro)
# In[31]:
# !pip install selenium
# ### Agora vamos atualiza a nossa base de preços com as novas cotações
# – Importando a base de dados
# In[32]:
# Passo 6 – Atualizar a minha base de dados com as novas cotações
import pandas as pd
tabela = pd.read_excel(“Produtos.xlsx”)
display(tabela)
# – Atualizando os preços e o cálculo do Preço Final
# In[33]:
# atualizar a cotação de acordo com a moeda correspondente
# dólar
# as linhas onde a coluna “Moeda” = “Dólar”
tabela.loc[tabela[‘Moeda’] == “Dólar”, “Cotação”] = float(cotacao_dolar)
# euro
tabela.loc[tabela[‘Moeda’] == “Euro”, “Cotação”] = float(cotacao_euro)
# ouro
tabela.loc[tabela[‘Moeda’] == “Ouro”, “Cotação”] = float(cotacao_ouro)
# atualizar preço de compra = preço original * cotação
tabela[“Preço de Compra”] = tabela[“Preço Original”] * tabela[“Cotação”]
# atualizar preço de venda = preço de compra * margem
tabela[“Preço de Venda”] = tabela[“Preço de Compra”] * tabela[“Margem”]
display(tabela)
# # Agora vamos exportar a nova base de preços atualizada
# In[34]:
tabela.to_excel(“Produtos Novos.xlsx”, index=False)
navegador.quit()
# In[ ]: