Extrair dados do site infomoney, consultar no google finance, gravar em uma planilha os resultados e enviar por e-mail.
Fiz esse com o framework da BotCity, tenho o mesmo fluxo feito com AutomationEdge, o qual vou postar noutra ocasião.
O desafio é o seguinte: Construa o seu fluxo com a ferramenta que você domina (Uipath, automation anywhere, Python, o que você sabe usar), poste com a hashtag #desafiorpainfomoney e coloque o link nos comentários deste post para todos conhecerem seu trabalho.
A execução será:
- Navegue para o site www.infomoney.com.br;
- Extraia os dados da tabela de maiores altas;
- Navegue para o site www.google.com/finance;
- Pesquise o valor de cada ação coletada;
- Guarde o valor e o índice de cada ação pesquisada;
- Grave uma planilha com o resultado (modelo na última imagem deste post);
- Envie um e-mail com o anexo (para onde você quiser, só é preciso funcionar);
Claro, aqui está uma versão aprimorada com os comandos que o usuário deve executar:
-
Crie um ambiente virtual:
python3 -m venv myenv
-
Instale as dependências do projeto:
pip install -r requirements.txt
-
Instale os webdrivers necessários do Playwright:
playwright install
-
Abra o gerenciador de conta Google:
- Acesse Gerenciador de Conta Google.
-
Ative a verificação de duas etapas:
- No Gerenciador de Conta Google, vá para a seção "Segurança".
- Encontre a opção "Verificação em duas etapas" e ative-a.
-
Crie uma senha para o aplicativo do Google:
- Na mesma seção de "Segurança", vá para "Senhas de aplicativos".
- Selecione "Gerar nova senha" e siga as instruções para criar uma senha específica do aplicativo para o seu projeto.
-
Ative o acesso IMAP no Gmail:
- Acesse as "Configurações" no seu Gmail.
- Vá para a guia "Encaminhamento e POP/IMAP".
- Em "Acesso IMAP", marque a opção "Ativar IMAP".
-
Crie um arquivo .env na raiz do projeto com as informações do e-mail:
- Na raiz do seu projeto, crie um arquivo chamado
.env
. - Adicione as seguintes linhas ao arquivo
.env
, substituindo os valores de exemplo pelos seus próprios:# Informações sobre o email source_email = "seu_email@gmail.com" source_password = "sua_senha_de_app_do_google" destiny_email = "destinatario@gmail.com"
Certifique-se de nunca compartilhar ou publicar seu arquivo
.env
contendo informações confidenciais, como senhas, em repositórios públicos. - Na raiz do seu projeto, crie um arquivo chamado
Com esses passos, você estará pronto para executar o código. Certifique-se de substituir quaisquer valores específicos (como endereços de e-mail, senhas, etc.) pelos seus próprios.
Claro, vamos detalhar um pouco mais, incorporando as funcionalidades específicas que estão presentes nas suas funções:
O main
é o componente central do nosso sistema, responsável por orquestrar todas as operações, desde a extração de dados até o envio de relatórios por e-mail. Aqui está uma descrição mais detalhada das principais funcionalidades:
-
Configurações Iniciais: O
main
inicia configurando o sistema, definindo o nível de registro de log para INFO e formatando as mensagens de log para facilitar a leitura. Em seguida, utiliza a funçãocreate_data_system_file
do móduloUtilities
para criar os diretórios necessários para armazenar os dados. -
Extração de Dados:
- Utiliza a função
extract_maiores_altas
do móduloExtract
para extrair informações sobre as maiores altas do dia do site Infomoney. Essas informações são armazenadas em um dicionário. - Em seguida, utiliza a função
extract_google_finance
do mesmo módulo para obter informações sobre as ações pesquisadas no Google Finance. Os resultados são combinados com os dados extraídos do Infomoney e adicionados ao dicionário.
- Utiliza a função
-
Transformação de Dados:
- Os dados extraídos são transformados em um DataFrame do Pandas, facilitando a manipulação e análise futura dos dados. Durante essa etapa, os valores extraídos do Google Finance são adicionados ao DataFrame.
-
Exportação de Dados:
- O DataFrame resultante é exportado para um arquivo Excel utilizando o método
to_excel
do Pandas. O arquivo é salvo no diretóriodata/raw
, permitindo fácil acesso e posterior análise dos dados.
- O DataFrame resultante é exportado para um arquivo Excel utilizando o método
-
Envio de Relatório por E-mail:
- Utiliza a função
env_vars
do móduloUtilities
para obter as informações de e-mail armazenadas no arquivo.env
. - Cria um e-mail com um assunto específico e um corpo HTML personalizado, informando sobre o comparativo entre as informações do Infomoney e do Google Finance.
- Anexa o arquivo Excel com os dados das maiores altas ao e-mail.
- Utiliza a função
send_email_gmail
do móduloemail
para enviar o e-mail ao destinatário especificado.
- Utiliza a função
Essas etapas garantem que os dados sejam extraídos, processados e entregues de forma eficiente e conveniente, permitindo uma análise fácil e rápida das tendências do mercado financeiro.