# 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:
[Link]
ring
Para isso, vamos criar uma automação web:
- Usaremos o selenium
- Importante: baixar o webdriver
from selenium import webdriver
from [Link] import Keys
from [Link] import By
# para rodar o chrome em 2º plano
# from [Link] import Options
# chrome_options = Options()
# chrome_options.headless = True
# navegador = [Link](options=chrome_options)
# abrir um navegador
navegador = [Link]()
# caso queira deixar na mesma pasta do seu código
# navegador = [Link]("[Link]")
[Link]("[Link]
# Passo 1: Pegar a cotação do Dólar
navegador.find_element([Link],
'/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([Link],
'/html/body/div[1]/div[3]/form/div[1]/div[1]/div[1]/div/div[2]/input').send_keys([Link])
cotacao_dolar = navegador.find_element([Link],
'//*[@id="knowledge-currency__updatable-data-column"]/div[1]/div[2]/span[1]').get_attribute("
data-value")
print(cotacao_dolar)
# Passo 2: Pegar a cotação do Euro
[Link]("[Link]
navegador.find_element([Link],
'/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([Link],
'/html/body/div[1]/div[3]/form/div[1]/div[1]/div[1]/div/div[2]/input').send_keys([Link])
cotacao_euro = navegador.find_element([Link],
'//*[@id="knowledge-currency__updatable-data-column"]/div[1]/div[2]/span[1]').get_attribute("
data-value")
print(cotacao_euro)
# Passo 3: Pegar a cotação do Ouro
[Link]("[Link]
cotacao_ouro = navegador.find_element([Link],
'//*[@id="comercial"]').get_attribute("value")
cotacao_ouro = cotacao_ouro.replace(",", ".")
print(cotacao_ouro)
[Link]()
### Agora vamos atualizar a nossa base de preços com as novas cotações
- Importando a base de dados
# Passo 4: Importar a lista de produtos
import pandas as pd
tabela = pd.read_excel("[Link]")
display(tabela)
Preço
roduto Preço Cotaçã Preço de
Moeda Margem de
s Original o Compra
Venda
Câmera 999.99 Dólar 5 4999.95 1.40 6999.930
0
Canon
Carro 4500.0 Euro 6 27000.0 2.00 54000.00
1
Renault 0 0 0
Notebook 899.99 Dólar 5 4499.95 1.70 7649.915
2
Dell
3 IPhone 799.00 Dólar 5 3995.00 1.70 6791.500
Carro Fiat 3000.0 Euro 6 18000.0 1.90 34200.00
4
0 0 0
Celular 480.48 Dólar 5 2402.40 2.00 4804.800
5
Xiaomi
- Atualizando os preços e o cálculo do Preço Final
# Passo 5: Recalcular o preço de cada produto
# atualizar a cotação
# nas linhas onde na coluna "Moeda" = Dólar
[Link][tabela["Moeda"] == "Dólar", "Cotação"] = float(cotacao_dolar)
[Link][tabela["Moeda"] == "Euro", "Cotação"] = float(cotacao_euro)
[Link][tabela["Moeda"] == "Ouro", "Cotação"] = float(cotacao_ouro)
# atualizar o preço base reais (preço base original * cotação)
tabela["Preço de Compra"] = tabela["Preço Original"] * tabela["Cotação"]
# atualizar o preço final (preço base reais * Margem)
tabela["Preço de Venda"] = tabela["Preço de Compra"] * tabela["Margem"]
# tabela["Preço de Venda"] = tabela["Preço de Venda"].map("R${:.2f}".format)
display(tabela)
Preç
Produto Preço Cotaçã Preço de o de
Moeda Margem
s Original o Compra Vend
a
Câmera 999.99 Dólar 5.244500 5244.44755 1.40 7342.22657
0
Canon 5 7
Carro 4500.0 Euro 5.350622 24077.8010 2.00 48155.6021
1
Renault 0 57 13
Noteboo 899.99 Dólar 5.244500 4719.99755 1.70 8023.99584
2
k Dell 5 3
IPhone 799.00 Dólar 5.244500 4190.35550 1.70 7123.60435
3
0 0
Carro 3000.0 Euro 5.350622 16051.8673 1.90 30498.5480
4
Fiat 0 71 05
Celular 480.48 Dólar 5.244500 2519.87736 2.00 5039.75472
5
Xiaomi 0 0
Joia 20g 20.00 Ouro 292.20000 5844.00000 1.15 6720.60000
6
0 0 0
### Agora vamos exportar a nova base de preços atualizada
# Passo 6: Salvar os novos preços dos produtos
tabela.to_excel("Produtos [Link]", index=False)