Este projeto é um crawler desenvolvido em Python para extrair dados do Yahoo Finance, utilizando Selenium para navegação e BeautifulSoup para parsing de HTML.
Para executar este projeto, você precisará ter instalado:
- Python 3.13+
- Poetry (Gerenciador de dependências)
-
Clone o repositório:
git clone https://github.com/buguno/crawler.git cd crawler -
Instale as dependências do projeto utilizando o Poetry:
poetry install
-
Configure as variáveis de ambiente:
Crie um arquivo
.envna raiz do projeto com base no arquivo de exemplo (.env.example).cp .env.example .env
Certifique-se de que a variável
BASE_URLestá definida corretamente no arquivo.env.
Existem duas formas principais de rodar a aplicação: ativando o shell do Poetry ou utilizando os comandos configurados via taskipy.
-
Ative o ambiente virtual do Poetry:
poetry shell
-
Execute a aplicação:
task crawler
Você pode customizar a execução utilizando as seguintes flags:
--region: Define a região para filtrar os dados (Padrão: "Brazil").--show-browser: Abre o navegador visualmente (desativa o modo headless). Útil para debugging.
Exemplos:
Rodar para a região "United Kingdom":
task crawler --region "United Kingdom"Rodar visualizando o navegador (não headless):
task crawler --show-browserCombinando flags:
task crawler --region "Argentina" --show-browserO projeto possui atalhos configurados no pyproject.toml para facilitar o uso.
Para garantir que tudo está funcionando corretamente, você pode rodar a suíte de testes.
-
Execute os testes com cobertura:
poetry run task testOu, se já estiver no shell (
poetry shell):task testEste comando executará o
pytestcom configurações de verbosidade e cobertura de código. -
Para ver o relatório de cobertura HTML (após rodar os testes):
poetry run task post_test
Além de rodar e testar, existem comandos úteis para manter a qualidade do código:
-
Lint (verificação):
task lint
-
Formatação (automática):
task format