🎉 SEMANA DO CONSUMIDOR

Últimos dias para comprar os cursos com 50% de desconto

Ver detalhes

Postado em em 19 de dezembro de 2024

Quer aprender como acompanhar os preços de produtos com Python? Descubra como construir uma automação com Selenium de maneira prática e descomplicada!

Se quiser pode acompanhar esse conteúdo em formato de vídeo ou pode acessar o nosso Canal do YouTube para mais vídeos!

Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:

Não vamos te encaminhar nenhum tipo de SPAM! A Hashtag Treinamentos é uma empresa preocupada com a proteção de seus dados e realiza o tratamento de acordo com a Lei Geral de Proteção de Dados (Lei n. 13.709/18). Qualquer dúvida, nos contate.

Automação com Selenium – Acompanhe Preços de Produtos com Python

Já imaginou acompanhar os preços de produtos ou viagens sem precisar ficar verificando o site constantemente? Com Python, isso é não apenas possível, mas também muito simples de ser feito!

Na aula de hoje, vou te ensinar como criar uma automação com Selenium de maneira prática, para que você consiga construir um script que faça todo esse trabalho por você.

Você aprenderá, passo a passo, como criar um programa em Python capaz de monitorar o preço de qualquer produto na internet!

Introdução à Automação com Python

Uma automação é quando você programa o computador para realizar tarefas repetitivas por você, economizando tempo e esforço.

Nesta aula, veremos como utilizar Python e a biblioteca Selenium para criar um monitor de preços automatizado.

Nosso objetivo será desenvolver um programa que monitore os serviços ou produtos de seu interesse, registrando o menor preço encontrado.

Como exemplo, vamos configurar o script para monitorar o site do Google Flights (Google Voos), buscando a passagem aérea mais barata para Paris, com ida e volta entre os dias 10 e 17 de fevereiro de 2025.

Instalação do Selenium

O Selenium é uma ferramenta poderosa para automação de navegadores, especialmente útil quando precisamos interagir com páginas que carregam conteúdo dinamicamente, como sites de passagens aéreas ou produtos.

Para instalar essa biblioteca, abra o terminal do seu editor de códigos e digite o comando: pip install selenium

Instalação do Selenium

Feito isso, a biblioteca estará pronta para uso.

Caso você tenha dificuldades com a execução dessa automação ou deseje se aprofundar nas funcionalidades do Selenium, recomendo conferir nossa aula: Selenium com Python – Automatize Qualquer Tarefa na Web

Planejando e Estruturando a Automação com Python

Sempre que você estiver construindo uma automação em Python, é fundamental pensar e definir quais ações você executaria manualmente para atingir o objetivo.

Com esse planejamento, você saberá exatamente os passos que o Selenium precisará realizar para alcançar o mesmo resultado.

No nosso exemplo, precisaremos:

  1. Acessar a página do Google Flights;
  2. Preencher os campos de pesquisa;
  3. Buscar as passagens;
  4. Registrar o preço mais barato em um arquivo de texto.

Se você quiser personalizar o código para definir o local de partida, destino e datas de viagem diretamente, isso também pode ser automatizado.

No entanto, como neste caso estamos buscando uma viagem específica, podemos simplificar: basta acessar o site do Google Flights, realizar a pesquisa manualmente uma vez, e copiar o link da página de resultados.

Planejando e Estruturando a Automação com Python

Isso porque, na URL dessa página, o Google já inclui os parâmetros da sua pesquisa. Ou seja, ao abrir essa URL em outra aba, janela ou até mesmo em outro navegador, você terá exatamente a mesma busca realizada anteriormente.

Com isso, nossa automação com Selenium será bem direta e consistirá em apenas três passos principais:

  • Abrir o navegador;
  • Acessar a página do Google Flights com a busca já feita;
  • Registrar o menor valor da passagem encontrada

Construindo a Automação com Selenium

Com a estrutura planejada e o Selenium instalado, podemos começar o desenvolvimento da automação, importando o WebDriver e a biblioteca time.

Importando as Bibliotecas Necessárias

O WebDriver é o componente responsável por controlar o navegador e responder aos comandos do código Python. É ele quem possibilita que o Selenium se conecte e manipule o navegador.

Já a biblioteca time é útil para configurar pequenas pausas ao longo da automação, garantindo um melhor controle e interação com as páginas, especialmente quando o carregamento de conteúdo depende de tempo ou conexão.

from selenium import webdriver
import time

Abrindo o Navegador e Acessando a Página

Para abrir o navegador usando o Selenium, utilizamos o comando webdriver.Chrome().

from selenium import webdriver
import time

# abriria o navegador
navegador = webdriver.Chrome()

Cada navegador terá seu método específico para ser aberto. Por exemplo, o Firefox pode ser inicializado com o comando webdriver.Firefox().

Acessar a página do Google Flights

O próximo passo é acessar a página do Google Flights. Para isso, armazenamos a URL da página em uma variável e utilizamos o método get para acessá-la.

Para garantir que todos os elementos da página sejam carregados antes de interagir com eles, podemos inserir uma pausa de 5 segundos usando o comando time.sleep() da biblioteca time.

from selenium import webdriver
import time

# abriria o navegador
navegador = webdriver.Chrome()

# iria para a página do google flights
link = "https://www.google.com/travel/flights/search?tfs=CBwQAhooEgoyMDI1LTAyLTEwagwIAhIIL20vMDZnbXJyDAgDEggvbS8wNXF0ahooEgoyMDI1LTAyLTE3agwIAxIIL20vMDVxdGpyDAgCEggvbS8wNmdtckABSAFwAYIBCwj___________8BmAEB&hl=pt-BR&gl=BR"

navegador.get(link)
time.sleep(5)

Com esse código, já conseguimos abrir o navegador, acessar a página desejada e aguardar o carregamento dos elementos.

Identificando e Interagindo com Elementos na Página – Acessando o Menor Preço

O próximo passo exigirá que o Selenium interaja com objetos específicos do site.

Toda página da internet é estruturada a partir de elementos HTML. Esses elementos podem ser identificados pelo ID, classe, texto ou outras características.

Para visualizar essas informações, abra a página que deseja automatizar, clique com o botão direito do mouse e selecione Inspecionar.

Inspecionar página

Isso abrirá a janela com as ferramentas do desenvolvedor.

ferramentas do desenvolvedor

No Chrome, por exemplo, você também pode acessar essas ferramentas clicando nos três pontos no canto superior direito do navegador, indo em Mais ferramentas e selecionando Ferramentas do desenvolvedor.

Ou, se preferir, pode utilizar o atalho Ctrl + Shift + I.

Ao abrir essa ferramenta, verá a opção Select an element in the page to inspect it, localizada no canto superior esquerdo (ícone com um quadrado pontilhado e uma seta).

opção Select an element in the page to inspect it

Essa ferramenta permite selecionar um elemento na página e verificar suas propriedades dentro da janela do desenvolvedor. Basta clicar sobre o elemento desejado, que ele será destacado no código HTML da página.

Por padrão, o menor valor de voo mais recomendado é o primeiro que aparece na seção Principais voos na página do Google. Então, vamos usar essa ferramenta de desenvolvedor para acessar as informações desse elemento.

Basta posicionar o mouse sobre o preço e clicar nele com a ferramenta selecionada.

Inspecionando o menor preço

Isso destacará o elemento dentro do código HTML, permitindo que você verifique suas propriedades e encontre um identificador único.

elemento dentro do código HTML

Com o elemento selecionado, podemos analisar a tag <> onde ele está. Se existir algum identificador, como uma classe ou um ID, poderemos utilizá-lo.

Nesse caso, o elemento está em uma tag <span>, que está dentro de uma <div>. Essa <div> possui uma classe específica que podemos utilizar com o Selenium para identificar e interagir com o elemento.

O método do Selenium que permite essa ação é o find_element(). Portanto, vamos utilizá-lo para identificar o elemento com a classe jLMuyc e extrair o texto dele utilizando .text.

from selenium import webdriver
import time

# abriria o navegador
navegador = webdriver.Chrome()

# iria para a página do google flights
link = "https://www.google.com/travel/flights/search?tfs=CBwQAhooEgoyMDI1LTAyLTEwagwIAhIIL20vMDZnbXJyDAgDEggvbS8wNXF0ahooEgoyMDI1LTAyLTE3agwIAxIIL20vMDVxdGpyDAgCEggvbS8wNmdtckABSAFwAYIBCwj___________8BmAEB&hl=pt-BR&gl=BR"

navegador.get(link)
time.sleep(5)

# pegar o preço da passagem aérea mais barata
preco = navegador.find_element("class name", "jLMuyc").text

Com isso, você consegue capturar o menor preço de passagem exibido na página

Salvando o preço em um arquivo

Com o texto do elemento armazenado na variável texto, podemos salvar esse valor em um arquivo de texto. Dessa forma, todos os dias posso executar essa automação e apenas verificar o arquivo gerado até encontrar o menor preço desejado.

Para isso, vamos usar a estrutura With para abrir e fechar o arquivo de texto com Python de forma adequada.

Dentro dessa estrutura, vamos utilizar o método write para gravar o valor do preço e, assim, finalizar nossa automação.

from selenium import webdriver
import time

# abriria o navegador
navegador = webdriver.Chrome()

# iria para a página do google flights
link = "https://www.google.com/travel/flights/search?tfs=CBwQAhooEgoyMDI1LTAyLTEwagwIAhIIL20vMDZnbXJyDAgDEggvbS8wNXF0ahooEgoyMDI1LTAyLTE3agwIAxIIL20vMDVxdGpyDAgCEggvbS8wNmdtckABSAFwAYIBCwj___________8BmAEB&hl=pt-BR&gl=BR"

navegador.get(link)
time.sleep(5)

# pegar o preço da passagem aérea mais barata
preco = navegador.find_element("class name", "jLMuyc").text

# preco.txt
with open("preco.txt", "w") as arquivo:
    arquivo.write(preco)

Executando a automação, teremos um arquivo chamado preco.txt na mesma pasta do programa, com o preço salvo nele.

Salvando o preço em um arquivo

Melhorando a Automação

Essa foi uma automação simples e direta ao ponto, para te apresentar algumas das possibilidades de automação com Selenium no Python.

A partir desse código, você pode desenvolver suas próprias automações ou melhorar a atual, adicionando funcionalidades como:

  • Comparar Preços: Fazer o programa avisar se o preço estiver abaixo do valor desejado.
  • Criar Alertas: Configurar o envio de e-mail quando o preço atingir o seu objetivo.
  • Agendar a Automação: Programar o computador para executar essa automação diariamente, semanalmente ou conforme o período desejado.

Dicas Importantes

  • Carregamento Dinâmico: Sempre espere o site carregar para evitar erros. Utilize métodos de espera para lidar com atrasos nas páginas.
  • Manutenção do Script: Fique atento a mudanças na estrutura HTML do site automatizado. Alguns sites podem alterar o código ao longo do tempo, então você pode precisar ajustar o programa.
  • Responsabilidade: Respeite os termos de uso dos sites e não sobrecarregue servidores com requisições frequentes.

Conclusão – Automação com Selenium – Acompanhe Preços de Produtos com Python

Na aula de hoje, mostrei o passo a passo para construir uma automação com Selenium. Com um código simples e direto, você pode monitorar preços de forma eficiente e personalizada.

Além disso, a partir desse projeto, você pode se aprofundar ainda mais no Selenium e criar automações ainda mais completas.

Para te ajudar com esse próximo passo, confira nosso minicurso gratuito: Minicurso de Automação com Python

Hashtag Treinamentos

Para acessar outras publicações de Python, clique aqui!


Quer aprender mais sobre Python com um minicurso básico gratuito?

Posts mais recentes de Python

Posts mais recentes da Hashtag Treinamentos

Diego Monutti

Expert em conteúdos da Hashtag Treinamentos. Auxilia na criação de conteúdos de variados temas voltados para aqueles que acompanham nossos canais.