Projeto 31 do curso de Desenvolvimento Web da Trybe.
Tech News é um projeto em Python que utiliza Beautiful Soup para fazer raspagem de dados no blog da Trybe, coletando notícias e artigos sobre tecnologia e armazenando-os em um banco de dados MongoDB.
ℹ️ Escrevi testes para as funções implementadas pelo Trybe. Esses testes podem ser encontrados no subdiretório de
tests
.
O projeto foi desenvolvido em Python e testado com Pytest. O banco de dados utilizado foi o MongoDB, e a conexão e interação com ele foram estabelecidas através da biblioteca PyMongo. Para garantir a qualidade do código, utilizou-se o Flake8, e a raspagem de dados na web foi realizada com o Beautiful Soup.
- Coletar notícias e artigos do blog da Trybe usando raspagem de dados e armazená-los em um banco de dados MongoDB.
- Pesquisar notícias por título.
- Pesquisar notícias por data.
- Pesquisar notícias por categoria.
- Listar as 5 categorias com mais notícias.
Para rodar o projeto localmente, siga os passos abaixo.
- Clone o repositório.
git clone [email protected]:garciaagui/tech-news.git
- Navegue até a raiz do projeto.
cd tech-news/
- Crie o ambiente virtual.
python3 -m venv .venv
- Ative o ambiente virtual.
source .venv/bin/activate
- Note que no começo da linha do terminal haverá
(.venv)
, como no exemplo abaixo.
(.venv) gui@gui-desktop:~/Trybe/tech-news$
- Para desativar o ambiente virtual, execute o comando
deactivate
. Lembre-se de ativá-lo novamente quando retornar ao projeto.
- Instale as dependências no ambiente virtual.
python3 -m pip install -r dev-requirements.txt
- Se você não tiver o MongoDB instalado localmente, inicie-o via Docker.
docker-compose up -d mongodb
- ℹ️ O nome do banco de dados é
tech_news
.
- Por fim, execute o seguinte comando para acessar o menu.
tech-news-analyzer
ℹ️ Para instruções adicionais, clique aqui.
- 🧪 Para rodar todos os testes, execute o comando abaixo.
python3 -m pytest
- 🧪 Para rodar apenas um arquivo de teste, siga o exemplo abaixo.
python3 -m pytest tests/reading_plan/test_reading_plan.py
- 🧪 Para rodar apenas um teste específico, siga o exemplo abaixo.
python3 -m pytest -k test_reading_plan_group_news_with_valid_input
- Caso deseje fazer testes manuais diretamente nos módulos onde as funções foram implementadas, siga o exemplo abaixo.
python3 -m tech_news.scraper.py
"A Trybe é uma escola do futuro para qualquer pessoa que queira melhorar de vida e construir uma carreira de sucesso em tecnologia, onde a pessoa só paga quando conseguir um bom trabalho."
"O programa conta com mais de 1.500 horas de aulas online, aborda introdução ao desenvolvimento de software, front-end, back-end, ciência da computação, engenharia de software, metodologias ágeis e habilidades comportamentais."
Projeto desenvolvido por Guilherme Garcia. Seguem abaixo minhas redes sociais e meios de contato. 🤘