Article image

DS

Debora Sousa14/02/2025 14:01
Compartilhe

Automatizando o Futuro: Como Usar Python para Coletar, Transformar e Visualizar Dados

  • #Python

Já imaginou poder automatizar tarefas manuais e repetitivas do seu dia a dia, economizando uma enorme quantidade de tempo, ou coletar dados e transformá-los em informações e insights valiosos para auxiliar sua empresa nas tomadas de decisões?

Com Python, isso é possível! Se você já se pegou pensando em como otimizar processos ou analisar grandes volumes de dados, esse artigo é para você. Vamos explorar como a automação e a análise de dados podem transformar seu trabalho e a forma como você lida com informações.

Neste artigo, veremos:

  • Como as automatizações e a análise de dados podem transformar sua produtividade?
  • Por que Python é uma boa escolha para automação e análise de dados?
  • Exemplo prático – Automatizando a coleta e análise de dados de um site.
  • Conclusão e recursos para se aprofundar mais.

Como as automatizações e a análise de dados podem transformar sua produtividade?

image

A automação e a análise de dados são duas ferramentas poderosas que têm o potencial de transformar a maneira como trabalhamos. Automações permitem que tarefas repetitivas sejam feitas de maneira eficiente e sem a necessidade de intervenção humana constante. Isso economiza tempo, reduz erros e libera mais espaço para tarefas criativas e de maior valor agregado.

A análise de dados, por sua vez, permite extrair insights valiosos de grandes volumes de informações. Em vez de apenas acumular dados, você pode usá-los para identificar padrões, prever tendências e tomar decisões mais assertivas. Quando combinadas, essas ferramentas oferecem um poder ainda maior, ajudando empresas a se tornarem mais ágeis e assertivas.

Por que Python é uma boa escolha para automação e análise de dados?

Python é uma linguagem de programação extremamente versátil e de fácil aprendizado, com uma vasta comunidade de desenvolvedores que contribuem constantemente com bibliotecas e frameworks que facilitam o trabalho.

image

Exemplo prático – Automatizando a coleta e análise de dados de um site!

image

Com Python, para automatizarmos esta tarefa podemos criar um bot que acessa automaticamente o site da transportadora, insere os códigos de rastreio, extrai as informações e as organiza em uma planilha. Dessa forma, todo o processo que levaria horas pode ser feito em poucos minutos.

Configurando o Ambiente ⚙️

Antes de começar, certifique-se de que tem o Python e o PyCharm instalados. Em seguida, basta instalar as bibliotecas necessárias no terminal do PyCharm com:

pip install selenium pandas openpyxl matplotlib seaborn chromedriver

Depois disso, basta importar as bibliotecas no seu código:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import openpyxl import matplotlib.pyplot as plt 
import seaborn as sns
import pandas as pd
import time

Entendendo as Bibliotecas Utilizadas 📚

Antes de mergulharmos na automação, vamos entender brevemente para que serve cada biblioteca utilizada no projeto:

  • Selenium – Permite interagir com páginas da web automaticamente, simulando cliques, preenchimento de formulários e navegação. Ele roda em segundo plano, o que significa que você pode continuar realizando outras atividades enquanto a automação acontece.
  • Pandas – Utilizado para manipulação e análise de dados, facilitando a leitura e escrita de planilhas Excel.
  • OpenPyXL – Auxilia no manuseio de arquivos .xlsx, tornando possível salvar os resultados da automação em uma planilha.
  • Matplotlib – Biblioteca para criação de gráficos e visualizações de dados de forma simples e intuitiva.
  • Seaborn – Complementa o Matplotlib, oferecendo gráficos mais bonitos e prontos para análise de dados.

Passo a Passo da Automação

1️⃣ Acessar o site da DHL:

# Caminho para o WebDriver (exemplo para Chrome)
navegador = webdriver.Chrome() 

# Abrir o site da DHL Transportadora
navegador.get("https://www.dhl.com/br-pt/home.html")
time.sleep(10) #Tempo para carregar a página

Quando executamos essa parte do código ele já nos leva até a página inicial do site:

image

Para interagir com os elementos do site, precisamos identificar o nome correspondente de cada item. Podemos fazer isso abrindo as ferramentas de desenvolvedor do navegador com CTRL + SHIFT + I (no Chrome) e inspecionando os elementos desejados.

  1. Abrindo o inspetor de elementos: Após pressionar CTRL + SHIFT + I, passe o mouse sobre os elementos do site para destacar suas estruturas.
  2. Copiando o seletor correto: Clique com o botão direito sobre o elemento desejado, vá até Inspecionar, depois clique em Copiar e selecione Copiar seletor ou Copiar XPath, dependendo da necessidade.
  3. Utilizando no Selenium: Com o seletor copiado, podemos usá-lo no código para localizar e manipular o elemento.

image

Coletando os IDs dos elementos do site

Para que nosso bot consiga interagir corretamente com os elementos da página, precisamos identificar seus seletores únicos. Esses identificadores podem ser classes (class name), IDs (id) ou seletores XPath (xpath).

No caso do site da DHL, coletamos os seguintes IDs e seletores para automação:

  • Botão "Aceitar todos os Cookies"'onetrust-accept-btn-handler'
  • Campo de digitação do código de rastreio"c-voc-marketing-stage-tracking--input"
  • Botão "Rastrear""//*[@id='wcag-main-content']/div[1]/div/div[2]/div[1]/div[1]/form/div/div/button"

Após inserir o código de rastreio e clicar no botão, precisamos capturar as informações retornadas pelo site:

  • Data da entrega"span[data-exclude-simplify='true']"
  • Status da entrega"c-tracking-result--status-copy-message"

Esses seletores serão usados no nosso código Python para localizar e interagir com os elementos da página.

2️⃣ Aceitando Cookies:

navegador.find_element(By.ID, 'onetrust-accept-btn-handler').click()
time.sleep(5)

3️⃣Ler os códigos de rastreamento da planilha:

# Carregar a planilha com os códigos de rastreamento 
df = pd.read_excel("codigos_rastreamento.xlsx") 

# Definir os códigos de rastreamento
codigos = df['Codigo'].tolist()

# Criar lista para armazenar os resultados 
resultados = []

4️⃣ Loop para processar cada código:

for codigo in codigos:
  try:
      # Encontrar o campo de busca e inserir o código
      campo_busca = navegador.find_element(By.ID, "c-voc-marketing-stage-tracking--input")
      campo_busca.clear()
      campo_busca.send_keys(codigo)

      # Clicar no botão "Rastrear"
      botao_rastrear = navegador.find_element(By.XPATH,"//*[@id='wcag-main-content']/div[1]/div/div[2]/div[1]/div[1]/form/div/div/button")
      botao_rastrear.click()
      time.sleep(5)  # Aguarda os resultados carregarem

      # Coletar a data da entrega
      try:
          data_entrega = navegador.find_element(By.CSS_SELECTOR, "span[data-exclude-simplify='true']").text
      except:
          data_entrega = "Não disponível"

      # Coletar o status da entrega
      try:
          status = navegador.find_element(By.CLASS_NAME, "c-tracking-result--status-copy-message").text
      except:
          status = "Não disponível"

      # Salvar os resultados
      resultados.append({"Código": codigo, "Status": status, "Data de Entrega": data_entrega})

      # Voltar para a página inicial para nova consulta
      navegador.get("https://www.dhl.com/br-pt/home.html")
      time.sleep(10)

  except Exception as e:
      print(f"Erro ao processar {codigo}: {e}")
      resultados.append({"Código": codigo, "Status": "Erro", "Data de Entrega": "Erro"})

5️⃣Salvando todos os resultados em uma nova planilha:

df_resultados = pd.DataFrame(resultados)
df_resultados.to_excel("resultados_rastreamento.xlsx", index=False)

print("Consulta finalizada! Resultados salvos em 'resultados_rastreamento.xlsx'.")

# Fechar o navegador
navegador.quit()

Após a execução deste código já conseguimos acesso as informações de status e data de entrega, e elas foram salvas numa nova planilha chamada "resultados_rastreamento.xlsx":

image

Visualizando e Transformando os Dados Coletados 📈

Agora que temos uma planilha com os resultados, podemos visualizar os dados de forma gráfica. Vamos utilizar o Matplotlib para criar um gráfico de barras com a quantidade de entregas realizadas e pendentes:

# Carregar os resultados
df_resultados = pd.read_excel("resultados_rastreamento.xlsx")


# Contar status das entregas
contagem_status = df_resultados["Status"].value_counts()


# Criar gráfico
plt.figure(figsize=(8,5))
sns.barplot(x=contagem_status.index, y=contagem_status.values, palette='viridis')
plt.xlabel("Status")
plt.ylabel("Quantidade")
plt.title("Status das Entregas")
plt.show()

image

As possibilidades de aprimorar o código com Python são infinitas. Podemos, por exemplo, criar gráficos que relacionem o tempo de entrega com os diferentes status, ou até mesmo gerar relatórios automáticos que destacam as entregas que levaram mais tempo do que o esperado. Além disso, podemos integrar outras fontes de dados, como informações sobre a localização do cliente, para realizar análises mais segmentadas e específicas.

Conclusão e recursos para se aprofundar mais 🆙

Ao adotar Python, as empresas conseguem se destacar no mercado ao oferecer soluções mais rápidas, precisas e personalizadas. O uso de ferramentas como pandas, matplotlib, e outras bibliotecas de análise, não só melhora a produtividade interna, mas também contribui para um atendimento ao cliente mais ágil e eficaz. Dessa forma, é possível melhorar a qualidade do serviço, oferecer insights mais precisos sobre o desempenho dos processos e fornecer uma experiência de serviço superior.

Ao dominar essas ferramentas, você não só se torna mais eficiente no trabalho, mas também se posiciona como um profissional inovador, capaz de agregar valor em diferentes contextos. Além disso, ao ajudar outras pessoas e empresas a implementar essas soluções, você contribui para a evolução do mercado como um todo, tornando-se parte de um movimento de transformação digital que traz benefícios para todos os envolvidos.

A informática não é apenas ciência, é a arte de transformar dados em soluções. - Beatriz Dorneles

Para se Aprofundar Mais

Referências:

Este foi o meu primeiro artigo e espero que tenham gostado e aproveitado o conteúdo. Pretendo escrever mais no futuro, então sugestões e dicas serão sempre bem-vindas! 🩵

Em breve, estarei postando este código junto com os arquivos utilizados no meu GitHub. Fiquem à vontade para conferir e acompanhar as atualizações: GitHub – Debora Holanda

Compartilhe
Comentários (2)

DS

Debora Sousa - 14/02/2025 17:33

Olá, Diego!

Muito obrigada pelo reconhecimento! Fico feliz que tenha gostado do artigo. Se tiver qualquer feedback ou quiser trocar ideias sobre o tema, estou à disposição.

Diego Piovesan
Diego Piovesan - 14/02/2025 16:16

Olá, Débora.

Gostaria de parabeniźa-la pelo artigo.

Respeitosamente.

Diego Piovesan.