Índice
O projeto tem como principal objetivo fazer consultas em notícias sobre tecnologia, através de raspagem de dados(web-scraping).
As notícias podem ser obtidas através da raspagem do blog da Trybe.
- Utilizar o terminal interativo do Python
- Escrever seus próprios módulos e importá-los em outros códigos
- Aplicar técnicas de raspagem de dados
- Extrair dados de conteúdo HTML
- Armazenar os dados obtidos em um banco de dados
-
Clonar o repositorio
git clone git@github.com:RenanFernandess/trybe-project-tech-news.git
-
Entrar na pasta project-job-insights
cd ./trybe-project-tech-news
-
Rodar MongoDB via Docker:
docker-compose up -d mongodb
...
O Python oferece um recurso chamado de ambiente virtual, onde permite sua máquina rodar sem conflitos, diferentes tipos de projetos com diferentes versões de bibliotecas.
-
criar o ambiente virtual
python3 -m venv .venv
-
ativar o ambiente virtual
source .venv/bin/activate
-
instalar as dependências no ambiente virtual
python3 -m pip install -r dev-requirements.txt
Com o seu ambiente virtual ativo, as dependências serão instaladas neste ambiente. Quando precisar desativar o ambiente virtual, execute o comando
deactivate
. Lembre-se de ativar novamente quando voltar a trabalhar no projeto.
Para executar os testes certifique-se de que você está com o ambiente virtual ativado.
Executar os testes
python3 -m pytest
Mais comandos
O arquivo pyproject.toml
já configura corretamente o pytest. Entretanto, caso você tenha problemas com isso e queira explicitamente uma saída completa, o comando é:
python3 -m pytest -s -vv
Caso precise executar apenas um arquivo de testes basta executar o comando:
python3 -m pytest tests/nomedoarquivo.py
Caso precise executar apenas uma função de testes basta executar o comando:
python3 -m pytest -k nome_da_func_de_tests
Para executar um teste específico de um arquivo, basta executar o comando:
python3 -m pytest tests/nomedoarquivo.py::test_nome_do_teste
-
Abra um terminal Python importando as funções do arquivo menu.py
python3 -i tech_news/menu.py
-
Executar a função analyzer_menu()
analyzer_menu()
Após executar a função
analyzer_menu()
vai aparecer a seguinte mensagem no seu terminal.
Selecione uma das opções a seguir:
0 - Popular o banco com notícias;
1 - Buscar notícias por título;
2 - Buscar notícias por data;
3 - Buscar notícias por categoria;
4 - Listar top 5 categorias;
5 - Sair.
- Digite o número da opção para selecioná-la.
-
Após selecionar
Popular o banco com notícias
, digite quantas notícias serão buscadas.O banco de dados será populado com a quantidade de notícias informada.
-
Após selecionar
Buscar notícias por título
, digite o título.Ao buscar pelo título "Frameworks de", será retornada uma lista de tuplas contendo o título e URL da notícia com título correspondente:
[('Frameworks de programação', 'https://blog.betrybe.com/novidades/noticia_9.htm')]
A busca por título é
case insensitive
, ou seja, se não é obrigatório digitar letras maiúsculas; também não é necessário digitar o título completo. -
Após selecionar
Buscar notícias por data
, digite a data no formato aaaa-mm-dd(ano-mês-dia).Ao buscar pela data "2020-11-23", será retornada uma lista de tuplas contendo o título e URL da notícia com título correspondente:
[('Frameworks de programação', 'https://blog.betrybe.com/novidades/noticia_9.htm')]
-
Após selecionar
Buscar notícias por categoria
, digite a categoria.Ao buscar pela categoria "tecnologia", será retornada uma lista de tuplas contendo o título e URL da notícia com título correspondente:
[('Frameworks de programação', 'https://blog.betrybe.com/novidades/noticia_9.htm')]
A busca por categoria é
case insensitive
, ou seja, se não é obrigatório digitar letras maiúsculas -
Após selecionar
Listar top 5 categorias
, será retornada uma lista com as 5 categorias mais encontradas.Retorno:
['Tecnologia', 'Carreira', 'Ferramentas', 'Desenvolvimento Web', 'Desenvolvimento web']
-
- Renan Fernandes - Linkedin - renzinestuods@gmail.com