rafaelgou / fipe-crawler

FIPE Crawler - Script que realiza download dos dados da Tabela FIPE Preço Médio de Veículos.
Other
72 stars 32 forks source link

Tabela completa #9

Closed Le1Tatsuhi closed 1 year ago

Le1Tatsuhi commented 3 years ago

Em primeiro lugar, PARABÉNS!

Venho a alguns meses tentando alguns outros Gits e métodos de exportar a tabela, mas o seu Git é disparado o melhor que tem para encontrar!

Uma dúvida, percebi que, ao importar a tabela, é necessário solicitar ano, mês e depois o tipo de veículo.

Existe alguma maneira de fazermos uma integração que busque 100% da tabela com um único comando?

rafaelgou commented 3 years ago

Olá, @Le1Tatsuhi,

Se entendi bem tua pergunta, você gostaria de realizar a chamada assim:

./fipecrawler veiculo:extrair 2020 12

ao invés de:

./fipecrawler veiculo:extrair 2020 12 Carro
./fipecrawler veiculo:extrair 2020 12 Moto
./fipecrawler veiculo:extrair 2020 12 Caminhão

Você pode fazer uma versão adaptada do comando:

https://github.com/rafaelgou/fipe-crawler/blob/e0677cfa6682352daa8b0566d8a594a4ced2a520/src/Fipe/Command/ExtrairVeiculoCommand.php

que não solicite o tipo, e fazer um loop (foreach) pelos três tipos. O processamento é, de todo modo, o mesmo, pois esta é a estrutura da chamada feita pelo site da FIPE.

[]'s

Le1Tatsuhi commented 3 years ago

Vou tentar explicar de uma outra maneira

Quando fizemos qualquer chamada (levando o exemplo de 2020 12), independente do tipo

O sistema não busca toda a real tabela fipe, somente uma parte, sendo necessário, realizar o mesmo procedimento diversas vezes (2001 01.... 2001 02... 2001 03...) e assim por diante.

A minha pergunta é se, é possível realizar um comando que busque toda a tebela completa para cada tipo de veículo?

rafaelgou commented 3 years ago

É possível realizar a adaptação do comando para fazer isso. Ou fazer um batch com todas as variações possíveis, em bash, enfim, e deixar rodando.

Mas, na prática, não é viável. Não há uma API da FIPE disponível, então a bibilioteca simula a pesquisa do site, para cada veículo, ano, mês. O tamanho do banco de dados é imenso, e fazer uma chamada para cada registro é algo insano. Não tenho noção do tempo que levaria, mas você pode calcular considerando três tipos para um ano/mês e multiplar pela quantidade de anos que deseja X 12. É possível ainda que sua requisição seja bloqueada por DOS.

Le1Tatsuhi commented 1 year ago

Consegui algo mais completo, mas, foge da "Fipe", como o meu intuito era ter uma "base de dados" para a criação de projetos (websites, app e etc), e não somente ter os valores dos veículos.

Usei o JavaScript com puppeteer, e fs, o resultado foi um arquivo json com todos os carros, com marcas, modenos, anos e versões, já comercializados no Brasil.

Mas esse git me ajudou bastante

rafaelgou commented 1 year ago

Que legal, meu caro. Se puder compartilhar, fiquei curioso com tua abordagem (se possível).

Em algum momento pretendo migrar isso para Javascrit + NodeJS.