By Prof. Dr. Steven Dutt Ross
Introdução
Estou começando o processo de compra de um carro usado. Como costumo tomar essas decisões fazendo uma pesquisa sobre o assunto, escrevi um código R para raspar dados de websites e construir um banco de dados. Acredito que esse processo pode ser replicado para comprar passagens aéreas, apartamentos, e outros elementos que envolvam a coleta de dados para reduzir a assimetria de informações. Acredito que saber o preço de outros carros com características semelhantes reduz essa assimetria.
A ideia deste texto surge a partir de diversos cursos e palestras sobre o R que fiz em 2018. Um ótimo exemplo disso é o minicurso realizado pela Karla Esquerre e Adelmo Filho sobre Web scraping no III Seminário Internacional de Estatística com R. Também recomendo o minicurso do CURSO-R sobre Web scraping.
Seria a Ciência de Dados um nome bonito para a Estatística?
Existe muita discussão sobre ciência de dados ser apenas um nome bonito para a estatística. Seria a mesma coisa com um outro nome? Recentemente assisti uma palestra da Jenny Bryan sobre o assunto e fiquei convencido que Não. Entre os argumentos colocados, Jenny Bryan coloca uma lista (incompleta) de ações que um cientista de dados consegue fazer e um estatístico não. Tive que concordar com ela. Sendo um estatístico, frequentemente vi a minha inabilidade para:
- Raspar dados da web,
- Solicitar dados por meio de uma API,
- Analisar dados em formato de lista,
- Entender formatos como o JSON ou GeoJSON,
- Utilizar dados no formato XML,
- Ler um simples banco de dados do formato SQL, entre outras coisas são comuns para um cientista de dados.
Como graduado em Estatística, a minha maior preocupação sempre foi o modelo, os seus pressupostos e o procedimento para o teste de hipóteses.
Mas isso não quer dizer que não podemos aprender um pouco de ciência de dados. Esse artigo é justamente para compartilhar o que aprendi sobre raspagem de dados, porque acredito que este é um ótimo exemplo de como alguém pode usar o R de uma forma funcional para a tomada de decisões simples (como comprar um carro usado). Ainda estou no processo de aprendizado. Assim, quero deixar claro que…
Parte 1: Identificando a estrutura do site
Para fazer a escolha do carro que vou comprar estou buscando vou raspar dados do site do vivalocal com o pacote Rvest. Ao fazer um levantamento da estrutura do site, percebi que o site tem uma estrutura do tipo:
SITE BÁSICO / NÚMERO DA PAGINA / COMPLEMENTO DO SITE
Onde: SITE BÁSICO = http://search.vivalocal.com/auto-veiculo-usado/rio-de-janeiro/t+
COMPLEMENTO DO SITE = ?lb=new&search=1&start_field=1&keywords=……
Exemplos da estrutura:
Identificar essa estrutura será uma das etapas mais importantes no processo de raspagem de dados.
Também descobri que o site tem 19 páginas.
Com a ferramenta selectorgadget, pude identificar os elementos do site que estou interessado. Um exemplo do uso do selectorgadget pode ser vista na figura abaixo: