Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/begrossi/anp-price-collector
ANP Price Collector
https://github.com/begrossi/anp-price-collector
crawler experiment not-maintained scrapy-crawler
Last synced: 14 days ago
JSON representation
ANP Price Collector
- Host: GitHub
- URL: https://github.com/begrossi/anp-price-collector
- Owner: begrossi
- Created: 2015-10-05T03:16:25.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2015-10-05T03:36:24.000Z (about 9 years ago)
- Last Synced: 2024-10-04T16:33:02.970Z (about 1 month ago)
- Topics: crawler, experiment, not-maintained, scrapy-crawler
- Language: JavaScript
- Size: 574 KB
- Stars: 12
- Watchers: 3
- Forks: 4
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# anp-price-collector
ANP Price Collector* Esse projeto é composto de 3 módulos:
- collector: Coletor dos dados a partir da página da ANP.
- server: servidor com acesso via API
- frontend: conteúdo HTML/JS em AngularJS para consulta dos dados coletados.* Collector:
- O coletor é um script nodejs que lê, faz o parse da página, e consome todas as informações da página.
- Primeiramente, busca uma página inicial com a lista de estados e tipos de combustível.
- Para cada estado, em paralelo, faz uma busca da lista de cidades para cada tipo de combustível. E para cada cidade e tipo de combustível, busca a lista de postos pesquisados.
- Após acumular todos os dados de um estado, envia para o `server` através de API.
- A decisão de não dar acesso ao banco de dados direto ao Collector, e sim fazê-lo enviar os dados via API permite
que esse componente rode de forma autônoma, podendo-se utilizar, por exemplo o AWS Lambda para consumir processamento apenas uma vez por semana.* Server:
- Servidor de APIs REST, baseado no HapiJS, com acesso ao banco MongoDB.
- Os modelos de dados focam em otimizar a busca por dados na API de consulta, operação que seria mais custosa.
- Os dados são armazenados muito próximos à como serão consutados, no model `anpdata`, ficando os demais modelos apenas como auxiliares.* Frontend: (ainda não implementado)
- Conjunto de páginas HTML e scripts JS baseados em AngularJS, com suporte à SASS e mimificação de forma a gerar conteúdo estático e totalmente independente do servidor, acessando este através de APIs REST.