O foco principal deste projeto é, com base nos ensinamentos da Trybe, desenvolver uma aplicação para realizar consultas de notícias sobre tecnologia. Essas notícias são obtidas por meio de raspagem de dados (web scraping) do blog da Trybe, e os dados extraídos são armazenados em um banco de dados MongoDB para facilitar consultas futuras.
O que é a Trybe?🤔
A Trybe é uma escola de desenvolvimento web genuinamente comprometida com o sucesso profissional de seus estudantes. Com o Modelo de Sucesso Compartilhado (MSC) oferecido pela Trybe Fintech, uma instituição financeira autorizada pelo Banco Central do Brasil, os alunos têm a opção de pagar apenas quando estiverem trabalhando.A aplicação permite buscar as últimas notícias publicadas, paginar os resultados, e realizar pesquisas por título, data e categoria das notícias. A raspagem dos dados é feita por meio da biblioteca Parsel para extrair o conteúdo HTML e identificar as informações relevantes. Além disso, a aplicação precisa respeitar um Rate Limit para evitar sobrecarga no servidor do blog, garantindo uma requisição por segundo.
-
Requisição e Obtenção de HTML:
- Implementação da função
fetch
, responsável por realizar a requisição HTTP e obter o conteúdo HTML das páginas de notícias do blog.
- Implementação da função
-
Raspagem de URLs de Notícias:
- Criação da função
scrape_updates
para extrair as URLs das páginas de notícias a partir do HTML da página inicial do blog.
- Criação da função
-
Paginação:
- Desenvolvimento da função
scrape_next_page_link
para buscar o link da próxima página de notícias e possibilitar a paginação.
- Desenvolvimento da função
-
Extração de Dados das Notícias:
- Implementação da função
scrape_news
, responsável por extrair os dados de cada notícia individual, como título, autor, tempo de leitura e resumo.
- Implementação da função
-
Obtenção e Armazenamento de Notícias:
- Criação da função
get_tech_news
, que utiliza as funções anteriores para obter e armazenar no MongoDB as últimas notícias publicadas.
- Criação da função
-
Buscas no Banco de Dados:
- Implementação de funcionalidades que permitem buscar notícias no banco de dados por título (
search_by_title
), data (search_by_date
) e categoria (search_by_category
).
- Implementação de funcionalidades que permitem buscar notícias no banco de dados por título (
- Web Scraping: Aplicação de técnicas de raspagem de dados usando a biblioteca Parsel para extrair informações de páginas HTML.
- Manipulação de Banco de Dados: Utilização do MongoDB para armazenar e consultar dados extraídos.
- Programação com Python: Desenvolvimento de funções modulares e reutilizáveis para requisições HTTP, raspagem de dados, e manipulação de banco de dados.
- Testes Automatizados: Implementação de testes para garantir o funcionamento correto das funcionalidades desenvolvidas.
- Rate Limiting: Implementação de um controle de requisições para garantir que o servidor não seja sobrecarregado.
- Python - Linguagem de programação utilizada para desenvolver a aplicação.
- Parsel - Biblioteca para extração de dados de documentos HTML e XML.
- Requests - Biblioteca para realizar requisições HTTP.
- MongoDB - Banco de dados NoSQL utilizado para armazenar as notícias extraídas.
- Pytest - Framework de testes automatizados usado para validar as funcionalidades.
- Docker - Ferramenta usada para rodar o banco de dados MongoDB em ambiente controlado via Docker Compose.