- Abordagem de coleta de dados pela web, apresentando ferramentas conhecidas como, Requests, Parsel, Selenium, BeautifulSoup e uso do pymongo para salvar as informações coletadas em um mango de dados mongodb.
Coleta de dados pela internet
- Desenvolvido metodos, para requisitar e coletar dados do blog da trybe e salvar no banco mongodb.
🔭 Usando menu interativo CLI:
Para ter acesso ao menu inicial, dentro do container com seu ambiente virtual iniciado digite o comando tech-news-analyzer
Primeira opção, realiza a coleta de dados do blog da trybe, você pode determinar quantas noticias deseja coletar do blog, após a coleta é realizada o armazenamento ao banco de dados que está no container. Após realizar a coleta ao blog, é possivel procurar por titulos, data, tag e categorias, conforme a seguir.
que foram salvos no banco, digitando uma palavra ou letra de referencia, ele deve apresentar todos titulos compativeis com a busca
Para buscar por uma nótica por data, deve-se respeitar o formato solicitado.
Nem toda notícia possui uma tag, mas é possivel procurar por uma tag especifica.
Toda notícia possui uma categoria, é possivel procurar por uma especifica.
Consultando o armazenamento ao banco é possível listar as 5 nóticas mais populares com base em sua quantidade de comentários.
Assim como as notícias mais comentadas é possivel listar as 5 categorias mais abordadas.
Ultima opção para sair, só é possivel sair do menu por essa opção ou por um fechamento forçado.
- Maior desafio foi de lidar com "subtags" quando coletando algum tag especifico, se ele possuia uma tag dentro dele, como um negrito ou itálico, usando o parsel, usando o filtro para coleta somente do texto, ele acaba que ignora alguns elementos, depois de muita pesquisa, e tentativa de entender como usar melhor os seletores css, para coleta, foi possivel coletar o primeiro paragrafo de cada noticia juntamente com suas tags filhas.
- Muito gratificante a conclusão de mais um projeto onde aprendi muito com apenas 11 requisitos.
Importante: seguir a ordem apresentada a baixo, para o funcionamento.
⚠️ Configurações mínimas para execução do projeto
- Sistema Operacional Distribuição Unix
- Python versão >= 3.8.10
⚠️ Inicie o docker-compose
Para ver a aplicação funcionando basta iniciar o docker compose, basta esta na pasta do repositório tendo o requisitos conforme informado na aba de requisitos, e iniciar o docker com docker-compose up -d
Após levantar o container para interagir com os comandos de linha, é necessário acessar o container usando o comando a seguir, docker exec -it tech_news bash
, dentro do terminal do container é necessário entrar no ambiente virtual do python com o comando, source .venv/bin/activate
, após esse comando o inicio do terminal deve aparecer com (.venv)
antes do root, deve-se usar o comando pip install .
para instalar o menu, após isso basta usar o comando apresentado na parte de amostra.
🗞️ Requisitos solicitados durante o desenvolvimento do projeto
Nome | Avaliação |
---|---|
1 - Crie a função fetch | ✔️ |
2 - Crie a função scrape_novidades | ✔️ |
3 - Crie a função scrape_next_page_link | ✔️ |
4 - Crie a função scrape_noticia | ✔️ |
5 - Crie a função get_tech_news para obter as notícias! | ✔️ |
6 - Crie a função search_by_title | ✔️ |
7 - crie a função search_by_date | ✔️ |
8 - Crie a função search_by_tag | ✔️ |
9 - Crie a função search_by_category | ✔️ |
10 - Crie a função top_5_news | ✔️ |
11 - Crie a função top_5_categories | ✔️ |
12 - Crie a função analyzer_menu | ✔️ |
13 - Implemente as funcionalidades do menu | ✔️ |