Skip to content

Sistema que faz o processo de Web Scraping de pontos de coleta de agasalhos para doação. Os dados coletados são tratados e enviados para a API Donations Points para serem consumidos por quaiquer aplicações front-end.

Notifications You must be signed in to change notification settings

fatec-degree/fatec-tg-scraping-donations-points

Repository files navigation

Donations Points Scraping

Sistema que faz o processo de Web Scraping de pontos de coleta de agasalhos para doação. Os dados coletados são tratados e enviados para a API Donations Points para serem consumidos por quaisquer aplicações front-end.

O objetivo destas duas aplicações em conjunto é fazer um "compilado" de pontos de coleta de agasalhos, independente de instituições. Deixando as informações centralizadas em um único lugar e permitindo a fácil consulta.

Atualmente o processo de Web Scraping coleta dados do site do Exército da Salvação. Futuramente serão introduzidos dados de outros sites.


Tecnologias utilizadas

  • Python 3.8 para desenvolvimento da aplicação;
  • API do Google Maps para solicitar e salvar os endereços de forma consistente;
  • Banco de dados MySQL para salvar os dados extraídos pelo processo de Web Scraping;
  • Biblioteca Selenium para fazer o processo de Web Scraping no navegador;
  • Biblioteca Beautiful Soup para tratar o HTML;
  • Biblioteca Nox para automação de Lint;
  • Docker para conteinerizar a aplicação e o banco de dados facilitando o desenvolvimento local;
  • Docker Compose para subir os múltiplos conteiners da aplicação (conteiner da aplicação, da API e do banco);
  • GitHub Actions para CI:
    • Automação de Lint da aplicação.
    • Atualização automática da imagem docker da aplicação no repositório do DockerHub Repository - Pedro.

Pré-requisitos para executar o projeto

  • Docker version 20.10.22
  • Docker Compose v2.6.0

Como executar o projeto

  1. Entre na pasta docker e abra o arquivo docker-compose.yml. Adicione a sua chave de API do Google Maps no local em destaque (veja aqui como solicitar):

Maps API Key

  1. A partir do terminal entre na pasta docker e execute o seguinte comando para subir a aplicação:
cd docker
docker compose up -d

Este comando executa primeiro o banco de dados MySQL, depois a API Spring e por último o container que faz o processo de Web Scraping.

  1. Para testar os dados finais que foram salvos na API utilize o seguinte comando no terminal:
curl --location --request GET 'localhost:8080/api/donations-points'

Para uma melhor visualização dos dados faça a requisição pelo Postman, ou instale a extenção Json Viewer em seu navegador e cole a url na barra de pesquisa:

Resultado da requisição


Problemas e possíveis soluções

Conflito de portas do MySQL

Se o MySQL estiver instalado em sua máquina, certifique-se de desativar o serviço. O docker-compose da aplicação sobe um container que executa o MySQL na porta 3306, caso já exista um serviço executando na mesma porta ocorrerá um erro.


About

Sistema que faz o processo de Web Scraping de pontos de coleta de agasalhos para doação. Os dados coletados são tratados e enviados para a API Donations Points para serem consumidos por quaiquer aplicações front-end.

Topics

Resources

Stars

Watchers

Forks