Arquitetura¶
Arquitetura Básica de Funcionamento¶
O funcionamento da biblioteca pynvest
é relativamente simples e pode ser ilustrado através do diagrama abaixo:
No modelo proposto, existem basicamente 7 grandes etapas que resumem todas as principais funcionalidades na biblioteca. São elas:
- Usuários interessados em obter indicadores financeiros utilizam a biblioteca em suas aplicações
- Os métodos da biblioteca realizam requisições à sites contendo indicadores financeiros através de módulos de scrappers
- Respostas às requisições são obtidas
- Em geral, as respostas chegam no formato HTML puro
- O conteúdo HTML é tratado através da biblioteca BeautifulSoup
- O tratamento do conteúdo normalmente é convertido em um DataFrame do pandas
- O usuário então recebe um DataFrame pandas contendo os indicadores financeiros de ativos
Scrappers¶
Neste contexto, as funcionalidades de coleta de indicadores financeiros da pynvest
estão totalmente baseada no conceito de scrappers que, essencialmente, são módulos personalizados para cada site ou fonte da informação onde dados precisam ser coletados e tratados. Em outras palavras, existe uma relação de 1 para 1 entre scrapper e site/portal de indicadores financeiros.
Quais scrappers estão atualmente disponíveis na biblioteca?
Até o presente momento, a biblitoeca conta apenas com scrapper fundamentus
responsávei por aplicar processos de web scrapping no portal Fundamentus. No futuro, outros scrappers podem ser adicionados para proporcionar uma experiência cada vez mais vasta ao usuário.
Módulos e Submódulos¶
Apresentada a estratégia de funcionamento, a biblioteca possui essa árvore de módulos e submódulos onde os usuários podem interagir diretamente via código.
├───scrappers
│ │ fundamentus.py
│ └───__init__.py
│
└───utils
│ log.py
└───__init__.py
Dica: Aqui, é possível entender claramente a relação entre scrappers e portais de indicadores financeiros. O submódulo fundamentus.py
contém funções, classes e métodos especialmente construídos para contemplar toda a dinâmica de extração e tratamento de dados contidos no site Fundamentus.