Obtendo os dados da B3 utilizando Python e frameworks de RPA

Surgiu uma necessidade de baixar os dados disponibilizados no site da B3 através do download de arquivos referente ao tópico “Banco de Dados Completo”, através do link Código ISIN | B3, conforme imagem abaixo.

Caminho de onde os arquivos são baixados no site da B3:

Esse link ele extrai os dados de um arquivos com a extensão .zip, e dentro desse arquivo zipado possui três arquivos: EMISSOR.TXT, NUMERACA.TXT e Leiame.pdf.

Portanto ao invés do usuário entrar no site diariamente (ou no período que ele preferir) e baixar esses dados, criei um script em Python com estruturas de de RPA utilizando principalmente a biblioteca selenium.

A biblioteca selenium ela literalmente abre o navegador desejado (no script utilizamos o Google Chrome) e pega as informações já renderizadas dentro do próprio navegador, ou seja, o script abre o link informado e clica no ícone que expande o menu e clica no botão “Banco de Dados Completo” para fazer o download dos arquivos necessários. Para chegar nesse caminho, eu inspecionei o objeto dentro do navegador e copiei o caminho XPath, conforme demonstrado na imagem abaixo.

Obter o caminho XPath do objeto dentro do site

Apesar de ser o meu primeiro script em Python profissional e não acadêmico, com certeza deve haver muitas melhorias a serem feitas, porém, conseguiu solucionar o problema desejado.

Portanto, para essa solução, o script faz as seguintes etapas:

1.1. Importa as bibliotecas necessárias
1.2. Define os diretórios onde será baixado os arquivos e posteriormente copiados
1.3. Verifica se já possui arquivo com a extensão .zip ou .txt no diretório de origem, caso tenha, ele deleta os arquivos

2.1. Define a URL que o selenium deverá abrir
2.2. Define onde está o driver do navegador escolhido
2.3. Abre o navegador e faz os comandos necessários automaticamente

3.1. Verifica se possui arquivo com a extensão .zip baixada e cria um dataframe dos arquivos que estão dentro do arquivo compactado
3.2. Extrai os arquivos somente com a extensão .txt, que serão utilizados num futuro data stage
3.3. Renomeia os arquivos
3.4. Copia os arquivos para um diretório de destino

Como exemplo, os arquivos que estão dentro do arquivo compactado atualmente são:

Arquivos dentro do arquivo compactado

Lembrando que para o script funcionar corretamente, é necessário fazer o download do driver do Google de acordo com a versão do seu navegador. Abaixo segue o script completoem Python:

Gif do processo funcionando

Apesar do processo manual não ser tão demorado, com esse script conseguimos automatizar uma conexão com uma fonte de dados que antes dependia de um usuário para ser finalizada, e agora podemos obter automaticamente e carregar esses dados para uma tabela.

Qualquer duvida pode entrar comigo diretamente através do meu Linkedin, ou aqui nos comentários.

Guilherme Matheus | LinkedIn

Mechanical Engineer Business Intelligence developer, passionate about technology, I have knowledge and experience to create a BI architecture and much more 📚.

Mechanical Engineer Business Intelligence developer, passionate about technology, I have knowledge and experience to create a BI architecture and much more 📚.