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.
O que você vai ver hoje?
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
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:
- Acessar a página do Google Flights;
- Preencher os campos de pesquisa;
- Buscar as passagens;
- 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.
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.
Isso abrirá a janela com as 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).
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.
Isso destacará o elemento dentro do código HTML, permitindo que você verifique suas propriedades e encontre um identificador único.
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.
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!
Posts mais recentes de Python
- Como salvar e reutilizar variáveis Python com a biblioteca PickleAprenda a usar a biblioteca Pickle para salvar qualquer objeto Python em um arquivo e reutilizá-lo em outro código, sem precisar recriar tudo do zero.
- Como buscar dados de empresas com Python? Passo a passoAprenda a buscar dados de empresas com Python, como quem são os sócios, o capital social ou a atividade principal, usando apenas o CNPJ.
- Como traduzir com Python? Traduza QUALQUER COISA com 4 linhas de código!Aprenda a traduzir com Python textos para 33 idiomas diferentes de forma rápida e com qualidade superior ao Google Tradutor ou ChatGPT!
Posts mais recentes da Hashtag Treinamentos
- Aprenda a Criar Planilha de Estoque com ChatGPT e ExcelQuer aprender como criar uma planilha de estoque com ChatGPT e Excel? Aprenda como fazer isso de forma simples e direta!
- Conheça o Gemini, o ChatGPT do GoogleConheça o Gemini, a inteligência artificial do Google, que funciona basicamente como o ChatGPT do Google.
- Como Perguntar e Entender Direções em Inglês: Guia Completo para ViajantesAprenda como pedir e entender direções em inglês de forma clara e educada. Confira nosso guia completo com frases prontas e com as pronuncias adequadas.
Expert em conteúdos da Hashtag Treinamentos. Auxilia na criação de conteúdos de variados temas voltados para aqueles que acompanham nossos canais.