Skip to content

O projeto tem como principal objetivo fazer consultas em notícias sobre tecnologia, através de raspagem de dados(web-scraping)

Notifications You must be signed in to change notification settings

RenanFernandess/trybe-project-tech-news

Repository files navigation

🚧 README customizado em construção ! 🚧

Tech News

Índice
  1. Sobre o Projeto
  2. Começando
  3. Uso
  4. Contato
  5. Agradecimentos

Sobre o Projeto

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.

Habilidades trabalhadas

  • 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

Construido Com

  • Python
  • pytest
  • parsel
  • requests
  • MongoDB
  • pymongo

(voltar ao topo)

Começando

Instalação

  1. Clonar o repositorio

     git clone git@github.com:RenanFernandess/trybe-project-tech-news.git
    
  2. Entrar na pasta project-job-insights

     cd ./trybe-project-tech-news
    

Banco de dados

  1. Rodar MongoDB via Docker:

     docker-compose up -d mongodb
    

Docker

...

Ambiente virtual

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.

  1. criar o ambiente virtual

     python3 -m venv .venv
    
  2. ativar o ambiente virtual

     source .venv/bin/activate
    
  3. 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.

Tests

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

(voltar ao topo)

Uso

  1. Abra um terminal Python importando as funções do arquivo menu.py

     python3 -i tech_news/menu.py
    
  2. 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.
  1. Digite o número da opção para selecioná-la.
    1. 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.

    2. 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.

    3. 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')]
      
    4. 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

    5. 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']

(voltar ao topo)

Contato

(voltar ao topo)

Agradecimentos

(voltar ao topo)

About

O projeto tem como principal objetivo fazer consultas em notícias sobre tecnologia, através de raspagem de dados(web-scraping)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published