Na sexta semana do nosso curso de Metodologias Ágeis, enfrentamos desafios de RPA, trazidos por um profissional da LG, que atua no campo de automação de processos robóticos. O professor Amadeu organizou um sorteio que determinou os desafios que cada equipe deveria resolver. Nossa equipe foi incumbida de solucionar os desafios 1 e 10, ambos exigindo a criação de scripts em Python para automação de tarefas repetitivas.
Desafio 1: Coleta de Dados de Preços Médios Mensais no Site LME
Objetivo: Desenvolver um script que acessa o site da London Metal Exchange (LME), navega até a seção de "monthly average" e compila os dados dos últimos três meses em um arquivo Excel.
Solução: Utilizamos BotCity para automatizar a navegação no site e coleta dos dados. Os dados extraídos foram organizados em um DataFrame usando pandas e salvos em um arquivo Excel. O processo foi facilitado pela criação de um ambiente virtual em Python, com as bibliotecas necessárias para automação e manipulação de dados, garantindo um isolamento eficiente do projeto.
Durante o desenvolvimento, foi necessário realizar uma pesquisa em um artigo para encontrar uma solução que permitisse burlar o captcha do CloudFlare. Utilizando o SeleniumBase, uma ferramenta de web scraping e crawling em Python que executa o Selenium em modo stealth usando o Undetected ChromeDriver, conseguimos realizar o login utilizando uma conta cadastrada no site da LME, o que permitiu o acesso às planilhas necessárias para a extração de dados. O SeleniumBase se mostrou mais eficiente que o Undetected ChromeDriver por utilizar patches avançados de navegador para ignorar verificações anti-bot. Essa solução foi crucial para garantir a automação completa do processo, permitindo a coleta precisa dos dados necessários.
Desafio 10: Automação de Monitoramento de Preços em um Site de E-commerce
Objetivo: Criar um script que monitora os preços de produtos em um site de e-commerce, registra os preços em uma planilha Excel junto com a data da coleta e gera um gráfico para visualizar a variação dos preços ao longo do tempo.
Solução: Iniciamos com a função fetch_iframe_content
, que envia uma requisição GET para a página do produto, usando a URL fornecida. O conteúdo HTML da página é então processado usando BeautifulSoup para facilitar a extração dos elementos necessários, como o nome do produto e o preço atual. Em seguida, a função convert_to_numeric
converte o preço de uma string para um número decimal, removendo caracteres desnecessários e garantindo que os dados estejam prontos para a manipulação.
Com os dados extraídos e formatados, a função update_excel
é acionada para atualizar o arquivo Excel. Se o arquivo já existir, ele é carregado; caso contrário, um novo DataFrame é criado. O preço do produto, juntamente com a data da coleta, é então registrado em uma nova linha do arquivo Excel. Por fim, a função gera um gráfico usando matplotlib para visualizar a variação dos preços ao longo do tempo.
Práticas Ágeis Aplicadas
O papel de Scrum Master foi essencial para facilitar o trabalho da equipe e garantir que as práticas ágeis fossem seguidas, enquanto a Equipe de Desenvolvimento esteve focada em entregar as soluções propostas com qualidade e no prazo estipulado.
Essa abordagem ágil não apenas permitiu uma execução eficiente dos desafios, mas também promoveu um ambiente de trabalho colaborativo e dinâmico, onde todos puderam contribuir para o sucesso das entregas.