Skip to content

Latest commit

 

History

History
335 lines (246 loc) · 9.23 KB

README.md

File metadata and controls

335 lines (246 loc) · 9.23 KB

FIPE Crawler

Script que realiza download dos dados da Tabela FIPE Preço Médio de Veículos.

Licensa: MIT

Instalação

Requisitos

  • Versão linha de comando: PHP + PHP-CLI, MySQL, Composer.
  • Versão Web: PHP, Apache, MySQL, Composer.
  • Desenvolvimento versão Web: NodeJS e Bower

Instalação versão linha de comando

apt-get install php5 php5-cli php-mysql php5-curl php5-json mysql-server-5.5
git clone https://github.com/rafaelgou/fipe-crawler.git
curl -sS https://getcomposer.org/installer | php
./composer.phar install

Instalação versão Web

apt-get install php5 php5-cli php-mysql php5-curl php5-json mysql-server-5.5 apache2 libapache2-mod-php5
git clone https://github.com/rafaelgou/fipe-crawler.git
curl -sS https://getcomposer.org/installer | php
./composer.phar install

Para desenvolvimento utilize também bower install (exige NodeJS ).

A versão Web foi construída AngularJS v1.3.20, ou seja, está bastante desatualizada. Utilize preferencialmente a versão de linha de comando.

Configuração

cd fipecrawler/config
cp config.dist.php config.php

Editar informações de acesso ao banco e URL para versão Web:

<?php
$db = array(
    'host'   => 'localhost',
    'dbname' => 'fipe',
    'user'   => 'root',
    'pass'   => 'senha',
);

Crie a tabela veiculo no banco de dados com o seguinte comando:

mysql fipe -u root -p < sql/veiculo.sql

Execução via linha de comando

Na raiz do sistema, execute:

./fipecrawler

que exibe ajuda padrão e lista de comandos do sistema:

veiculo
 veiculo:csv       Exporta arquivo CSV por ano, mês e tipo
 veiculo:extrair   Extrai tabela por ano, mês e tipo

Possível então:

./fipecrawler veiculo:extrair
./fipecrawler veiculo:csv

Extraindo tabelas

./fipecrawler veiculo:extrair 2015 3 Caminhão

ou

./fipecrawler veiculo:extrair

o que pergunta:

--------------------------------------------------------------------------------

  FIPE Crawler
  veiculo:extrair
  Extrai tabela por ano, mês e tipo

--------------------------------------------------------------------------------
Informe ano (ENTER para 2015)
  [2015] 2015
  [2014] 2014
  [2013] 2013
  [2012] 2012
  [2011] 2011
  [2010] 2010
  [2009] 2009
  [2008] 2008
  [2007] 2007
  [2006] 2006
  [2005] 2005
  [2004] 2004
  [2003] 2003
  [2002] 2002
  [2001] 2001
 >
Informe mês (1 a 12) (ENTER para 03)
  [1 ] 1
  [2 ] 2
  [3 ] 3
  [4 ] 4
  [5 ] 5
  [6 ] 6
  [7 ] 7
  [8 ] 8
  [9 ] 9
  [10] 10
  [11] 11
  [12] 12
 >
Informe tipo (1 = carro, 2 = moto, 3 = caminhão) (ENTER para Carro)
  [1] Carro
  [2] Moto
  [3] Caminhão
 >

após, realiza a extração e salva em banco. Este procedimento é demorado, e depende da velocidade de sua conexão e disponibilidade do site da FIPE.

Você pode acompanhar o progresso nesta tela:

Recuperando tabelas para 03/2015...
Encontrada tabela 03/2015 !

Recuperando marcas para tabela id=[176] 03/2015, tipo=[1] Carro...
Encontradas 87 marcas para tabela id=[176] 03/2015, tipo=[1] Carro !

Recuperando modelos para 87 marcas -- tabela id=[176] 03/2015, tipo=[1] Carro...

 87/87 [============================] 4562 modelos extraídos
Encontrados 4562 modelos para 87 marcas -- tabela id=[176] 03/2015, tipo=[1] Carro !

Recuperando veiculos para para 4562 -- tabela id=[176] 03/2015, tipo=[1] Carro...
    6/4562 [>---------------------------] 36 veículos extraídos

Neste ponto os dados já podem ser vistos no banco de dados. Como a tabela possui chave única para fipe_cod + anomod, não há duplicação, mesmo se rodar mais de uma vez para o mesmo período.

Exportando CSV tabelas

Executado da mesma forma que o veiculo:extrair, mas solicita o nome do arquivo de exportação.

./fipecrawler veiculo:csv 2015 3 Caminhão

ou

./fipecrawler veiculo:csv

Exemplo:

./fipecrawler veiculo:csv 2015 3 Caminhão
--------------------------------------------------------------------------------

  FIPE Crawler
  veiculo:csv
  Exporta arquivo CSV por ano, mês e tipo

--------------------------------------------------------------------------------
Informe nome do arquivo (padrao 'fipe_201503_Caminhão.csv'):
--------------------------------------------------------------------------------

  FIPE Crawler
  veiculo:csv
  Exporta arquivo CSV por ano, mês e tipo

--------------------------------------------------------------------------------

Recuperando veículos para tabela 03/2015, tipo=[3] Caminhão...
Encontrados 78 veículos para tabela 03/2015, tipo=[3] Caminhão
 78/78 [============================] veículos exportados
Exportados 78 veículos para tabela 03/2015, tipo=[3] Caminhão !
Tentando salvar arquivo /var/www/Clientes/DiegoVeiga/Fipe/fipecrawler/fipe_201503_Caminhão.csv...
Criado arquivo /var/www/Clientes/DiegoVeiga/Fipe/fipecrawler/fipe_201503_Caminhão.csv !

Arquivo exemplo:

fipe_cod,tabela_id,anoref,mesref,tipo,marca_id,marca,modelo_id,modelo,anomod,comb_cod,comb_sigla,comb,valor
501034-9,176,2015,3,3,102,Agrale,5986,10000 2P (Diesel) (E5),32000,3,D,Diesel,134625
501034-9,176,2015,3,3,102,Agrale,5986,10000 2P (Diesel) (E5),2015,3,D,Diesel,119985
501034-9,176,2015,3,3,102,Agrale,5986,10000 2P (Diesel) (E5),2014,3,D,Diesel,115125
501034-9,176,2015,3,3,102,Agrale,5986,10000 2P (Diesel) (E5),2013,3,D,Diesel,109087
501034-9,176,2015,3,3,102,Agrale,5986,10000 2P (Diesel) (E5),2012,3,D,Diesel,102992
501027-6,176,2015,3,3,102,Agrale,4448,13000 Turbo 2P (Diesel),2012,3,D,Diesel,104763
501027-6,176,2015,3,3,102,Agrale,4448,13000 Turbo 2P (Diesel),2011,3,D,Diesel,97221
501027-6,176,2015,3,3,102,Agrale,4448,13000 Turbo 2P (Diesel),2010,3,D,Diesel,88952
501027-6,176,2015,3,3,102,Agrale,4448,13000 Turbo 2P (Diesel),2009,3,D,Diesel,82993
501027-6,176,2015,3,3,102,Agrale,4448,13000 Turbo 2P (Diesel),2008,3,D,Diesel,79413
501027-6,176,2015,3,3,102,Agrale,4448,13000 Turbo 2P (Diesel),2007,3,D,Diesel,72479

Versão WEB

Descompacte/clone o conteúdo na raiz de sua árvore web. Opcionalmente você pode criar um VirtualHost, link simbólico ou alias para o diretório web/.

Considerando que você utiliza o Apache2, necessita:

composer install
cd fipecrawler/config
cp config.dist.php config.php

Editar informações de acesso ao banco:

<?php
$db = array(
    'host'   => 'localhost',
    'dbname' => 'fipe',
    'user'   => 'root',
    'pass'   => 'senha',
);

Considerando que foi descompatado na raiz, você terá a interface web navegando em http://localhost/fipecrawler/web.

Se quiser navegar na versão de desenvolvimento, utilize http://localhost/fipecrawler/web/index_dev.php.

Consultas

Verifique a tabela veiculo para a estrutura de dados.

Informações úteis podem ser conseguidas com as seguintes consultas:

  • Lista de marcas
SELECT DISTINCT marca_id, marca FROM veiculo ORDER BY marca;
  • Lista de marcas e modelos
SELECT DISTINCT marca_id, marca, modelo_id, modelo FROM veiculo ORDER BY marca, modelo;
  • Filtrar por tipo (1 = carro, 2 = moto, 3 = caminhão)
-- Selecionando carros
SELECT * FROM veiculo WHERE tipo = 1;
  • Lista de combustíveis
SELECT DISTINCT comb_sigla, comb FROM veiculo ORDER BY comb_sigla, comb;
$ time ./fipecrawler veiculo:extrair 2023 1 Carro
--------------------------------------------------------------------------------
                                                                                
  FIPE Crawler                                                                  
  veiculo:extrair                                                               
  Extrai tabela por ano, mês e tipo                                            
                                                                                
--------------------------------------------------------------------------------

Recuperando tabelas para 01/2023...
Encontrada tabela 01/2023 !

Recuperando marcas para tabela id=[293] 01/2023, tipo=[1] Carro...
Encontradas 92 marcas para tabela id=[293] 01/2023, tipo=[1] Carro !

Recuperando modelos para 92 marcas -- tabela id=[293] 01/2023, tipo=[1] Carro...

 92/92 [============================] 6533 modelos extraídos
Encontrados 6533 modelos para 92 marcas -- tabela id=[293] 01/2023, tipo=[1] Carro !

Recuperando veiculos para para 6533 -- tabela id=[293] 01/2023, tipo=[1] Carro...
 6533/6533 [============================] 27251 veículos extraídos
Extraídos 27251 veículos -- tabela id=[293] 01/2023, tipo=[1] Carro !

--------------------------------------------------------------------------------
                                                                                
FIPE Crawler executado com sucesso em 14h2m9s, memória 8 megabytes             
                                                                                
--------------------------------------------------------------------------------
FIPE Crawler executado com sucesso!


real	69m57.767s
user	4m42.890s
sys	0m18.617s