SlideShare uma empresa Scribd logo
1 de 31
Baixar para ler offline
UMA ANÁLISE DAS OFERTAS ON-
LINE DE VEÍCULOS DOS USUÁRIOS
DO OLX BRASIL
AFONSO VALAU DE LIMA JUNIOR; DIEGO MAGALHÃES MENEZES;
DOUGLAS ZANATTA ULIAN; SANDRIELEM DA SILVA RODRIGUES
Contexto
Ao longo da última década, inovadores modelos de negócios têm surgido, trazendo mudanças
fundamentais aos tradicionais modelos econômicos. Empresas como a OLX, Airbnb, eBay, entre
outras, têm utilizado plataformas on-line para conectar oferta e demanda, promovendo a
interação de consumidores que formam ambos os lados do mercado. Estas iniciativas
apresentam rápido crescimento e estão sendo classificadas como parte de uma “economia
colaborativa” (OWYANG, TRAN e SILVA, 2013; TANZ, 2014).
Panorama Geral da Pesquisa
• Esta pesquisa centra-se em utilizar os dados do OLX (abreviatura de “Online Exchange" –
“troca online”), presente em mais de 100 países e em mais de 50 línguas. Em função dos
recursos disponíveis para a pesquisa optou-se por extrair os dados de usuários brasileiros
(http://www.olx.com.br/) que anunciaram na categoria “veículos e barcos”, subcategoria
“carros”.
• Para a coleta de dados utilizou-se o web scraping (extração de dados na web). O web
scraping é uma técnica de software que visa a extração de informações, simulando a
exploração humana da World Wide Web. Concentra-se em transformar dados não
estruturados presentes na web (no formato de HTML) em dados estruturados que podem ser
armazenados e analisados em um banco de dados ou planilha eletrônica.
• As análises dos dados coletados centrou-se em identificar diferenças de preço dos mesmos
produtos em diferentes regiões do Brasil, bem como, apresentar uma estatística descritivas
dos anúncios coletados.
OLX BRASIL
• O OLX Brasil é um site de classificados, onde os usuários podem vender e comprar itens usados,
como vestuário, carros, equipamentos eletrônicos, móveis e imóveis.
• De um lado do mercado estão os vendedores, esses podem postar anúncios de produtos ou
serviços que eles desejam comercializar, sendo cada anúncio, classificado em sua respectiva
categoria e subcategorias.
• Do outro lado do mercado, estão os compradores, que podem responder aos anúncios postados,
entrando em contato com o vendedor para fazer uma pergunta, uma oferta de um novo preço, ou
mesmo combinar a compra. Desta forma, o OLX atua facilitando a conexão desses dois lados do
mercado (oferta e demanda), não havendo qualquer transação monetária, esta, por sua vez, é
combinada entre os usuários.
• Atualmente a maioria das funcionalidades oferecidas pelo OLX são gratuitas, como criar conta e
anunciar um produto. No entanto, há opções para um anúncio pago e também para destacar um
anúncio, caso o usuário deseje fazê-lo. Desta forma, o principal objetivo do OLX é aumentar o
número de listagens lançadas, afim de tornar-se uma plataforma valiosa para a oferta e compra de
produtos.
COLETA DE DADOS
• Estrutura do OLX
• Estratégia Inicial de coleta
• Ferramentas utilizadas
• Características do código de coleta
• Problemas encontrados e seus contornos
• Resultados obtidos
• Soluções não exploradas
COLETA DE DADOS
Estrutura do OLX
• Dados estruturados
• Duas estruturas de classificação
• Categórica
• Geográfica
• Combinação de categorias é
utilizada para filtro dos anúncios
COLETA DE DADOS
Estrutura do OLX
• Anúncios ordenados por recência
• Divididos em páginas de índice
• Lista de páginas de índice
• Página de detalhes do anúncio
COLETA DE DADOS
Estrutura do OLX
• Geração automática de páginas
• CSS bem formatado facilita coleta
• Diferentes categorias e subcategorias,
estrutura genérica
• Qualidade e organização do gerador
da aplicação que gera as páginas
COLETA DE DADOS
Estratégia inicial de coleta
• Imitação do comportamento humano
1. Configurar a URL da página de índice da subcategoria versus região
2. Configurar a quantidade de páginas de índice a serem lidas
3. Criar estrutura da base de dados onde os anúncios serão armazenados
4. Iterar pelas páginas de índice, da primeira até a última
5. Acessar e extrair os anúncios de cada página de índice
6. Iterar pelos anúncios da página de índice
7. Acessar e extrair dados dos detalhes de cada anúncio
8. Transformar os dados para padronização
9. Armazenar dados no banco de dados
COLETA DE DADOS
Ferramentas utilizadas
Computador
• Notebook DELL Vostro 3450
• Processador Intel(R) Core(TM) i7-2640M CPU @ 2.80GHz 2.80 GHz
• Memória RAM de 6,00 GB
• Disco Rígido de 750 GB
• Sistema Operacional Windows 7 Professional 64 Bits OEM com Service
Pack 1
• Adaptador de rede Dell Wireless 1702 802.11b/g/n
• Protocolo de conexão sem fio 802.11/n
• Acess Point/Router/Acess Point HUMAX Cable RG modelo HG100R-L2
• Link de internet ADSL de 30 Mbps da operadora NET
R
• Ambiente de software para computação estatística e gráfica.
• Versão 3.3.1 para processadores de 64 bits.
• Utilizado para execução dos scripts de coleta e análise dos dados.
R Studio
• Ambiente de desenvolvimento integrado (IDE) para o R.
• Versão 0.99.893 para processadores de 64 bits.
• Utilizado no desenvolvimento e na execução dos scripts.
SQLite
• Sistema Gerenciador de Banco de Dados Standalone.
• Versão 3.14.1 2016-08-11 18:53:32
• Utilizado no armazenamento dos dados.
DBeaver
• Sistema de Administração de Bancos de Dados
• Versão 3.7.8
• Utilizado na consulta aos dados coletados.
COLETA DE DADOS
Bibliotecas utilizadas
RVest
• Biblioteca de funções para download e para manipulação de
conteúdo XML e HTML.
• Versão 0.3.2
• Utilizada para busca e coleta dos dados das páginas acessadas.
RSQLite
• Biblioteca de funções para manipulação de bases de dados do SQLite.
• Versão 1.0.0
• Utilizada para criação da base de dados, leitura e carga dos dados.
lubridate
• Biblioteca de funções para manipulação de datas.
• Versão 1.6.0
• Utilizada para padronização de formatos de datas.
stringr
• Biblioteca de funções para manipulação variáveis literais.
• Versão 1.1.0
• Utilizada para troca de codificação dos textos.
bigmemory
• Biblioteca de funções para manipulação de grandes estruturas de
dados.
• Versão 4.5.19
• Utilizada para o acesso compartilhado à memória RAM por processos
rodando em núcleos diferentes.
foreach
• Biblioteca de funções para computação paralela.
• Versão 1.4.30
• Utilizada para divisão da carga de trabalho entre os núcleos do
processador do computador.
doSNOW
• Biblioteca de funções para computação paralela.
• Versão 1.0.14
• Utilizada em combinação com foreach para criação de cluster do tipo
SOCK no sistema operacional Windows.
COLETA DE DADOS
Características do código de coleta
• Isolamento de funcionalidades em
funções
• 997 linhas de código
• 21 funções
• Função principal contendo 78 linhas
• Menor função contendo 4 linhas
• Maior função contendo 201 linhas
• Não utilização de variáveis globais
COLETA DE DADOS
Problemas encontrados e seus contornos
Telefone armazenado como imagem
• Problema
Diferente da maioria dos dados armazenados no código HTML, o
telefone do anunciante é apresentado em uma imagem do tipo "TIF"
com fundo transparente.
• Contorno
Download da imagem, transformação do padrão "TIF" de fundo
transparente para o padrão "JPEG" com fundo branco utilizando o
ImageMagik, leitura dos dados através de um software de
reconhecimento óptico de caracteres (OCR) tesseract.
Desempenho
• Problema
O tempo médio de coleta de um anúncio, na estratégia inicial, foi de 3
segundos aproximadamente levando o tempo total de coleta de 1
milhão de anúncios para 34,72 dias aproximadamente.
• Contorno
Utilizar processamento paralelo para dividir a carga de trabalho entre
os núcleos do processador do computador de coleta.
O tempo médio de coleta de um anúncio passou para 1,09 segundos
aproximadamente levando o tempo total de coleta para 12,62 dias
aproximadamente.
Caracteres inválidos
• Problema
O texto imputado em alguns anúncios contém caracteres cuja
codificação difere do padrão de codificação da página do OLX.
Embora os navegadores resolvam esta "mistura" de codificações, a
biblioteca RVest não o faz.
• Contorno
Tratamento de excessões no código de download da página para
tentativa com os principais padrões de codificação.
Falha na função de substituição de caracteres do R
• Problema
A função "gsub" do R, que substitui cadeias padrão de caracteres em
uma variável literal por outra cadeia de caracteres, gera caracteres
inválidos quando o padrão de codificação quando a cadeia de
caracteres a ser substituída possui codificação indefinida.
• Contorno
Identificação de caracteres com codificação desconhecida e aplicação
de codificação padrão.
COLETA DE DADOS
Problemas encontrados e seus contornos
Duplicação de anúncios
• Problema
Ao mesmo tempo que o script percorre as páginas de índice e acessa os
anúncios, usuários vendedores inserem novos anúncios.
Como os anúncios são ordenados conforme sua rescência, alguns
anúncios acabam trocando de página, passando para páginas mais
antigas conforme os novos anúncios são inseridos.
Com isso os últimos anúncios de uma página de índice tornam-se os
primeiros da página seguinte e o script acaba por ler o mesmo anúncio
mais de uma vez, perdendo eficiência.
O uso de computação paralela amplifica o problema.
• Contorno
Utilizar uma lista compartilhada entre os múltiplos processos de coleta
para armazenar anúncios já lidos.
Para o acesso compartilhado a lista foi utilizada uma biblioteca de
manipulação de grandes estruturas de dados.
Esta biblioteca utiliza ponteiros para o acesso a memória ROM que
apontam sempre para o mesmo endereço, mesmo quando acessados
por diferentes processos.
A solução não resolveu o problema e não houve tempo suficiente para
investigar a causa.
A principal hipótese é o uso incorreto da biblioteca de acesso
compartilhado à memória.
Repetição da última página
• Problema
A quantidade de páginas de índice varia conforme novos anúncios são
inseridos ou removidos por usuários vendedores.
Quando o script tenta acessar uma página de índice que não existe
mais, a última página de índice é retornada.
O script, não sabendo que trata-se da mesma página, continua
baixando os anúncios e passando à próxima página.
Enquanto o índice da suposta última página não é acessado, os
anúncios da última página real são replicados na base de dados.
O uso de computação paralela amplifica o problema.
• Contorno
Utilização da memória compartilhada para anotar o índice da página de
índice acessada e verificar se a página já não foi lida.
COLETA DE DADOS
Problemas encontrados e seus contornos
Desempenho paralelo
• Problema
Por padrão, conforme os acessos HTTP crescem, as conexões HTTP são
recriadas. Ao recriar a conexão, o processo de renegociação da conexão
com o servidor gasta tempo extra, aumentando o tempo médio de
coleta dos anúncios para 1,62 segundos aproximadamente.
Neste cenário, a coleta de todos os anúncios levaria 18,76.
• Contorno proposto
Medir o tempo de execução de cada parte do código para identificar o
trecho de baixo desempenho.
Identificar o problema com a recriação de conexões HTTP.
Utilizar a biblioteca RCurl para realizar requisições HTTP múltiplas e
reutilização de conexões.
Não foi possível concluir a implementação da coleta com a nova
biblioteca. Os testes com 200 acessos múltiplos fizeram com que o
provedor banisse a conexão ADSL. Foi necessário contato por telefone
com a equipe técnica para reestabelecimento da conexão.
Testes com 50 acessos múltiplos tiveram sucesso.
Queda do link de internet/falta de luz
• Problema
Após 8 dias de execução, a conexão de ADSL de internet com o
provedor foi perdida.
Dois dias após a nova execução, um temporal derrubou uma árvore
sobre o transformador de energia que alimentava o computador e o
link de internet, desligando o computador e a conexão com a internet.
• Contorno
Em ambos os casos, o script foi reconfigurado para retomar a coleta a
partir da página de índice do último anúncio lido.
No hiato entre uma execução e outra, registros podem ter sido
alterados, incluídos ou excluídos, prejudicando a qualidade da coleta e
a representatividade da amostra.
COLETA DE DADOS
Resultados obtidos
Tempos de coleta
No total foram executadas 3 coletas:
• Do dia 7/11/2016 às 02:16 até o dia 7/11/2016 às 19:09 totalizando 16 horas e 53 minutos
• Do dia 7/11/2016 às 20:05 até o dia 15/11/2016 às 23:24 totalizando 195 horas e 19 minutos
• Do dia 15/11/2015 às 23:47 até o dia 17/11/2016 às 08:09 totalizando 32 horas e 22 minutos
• O tempo total de coleta foi de 10 dias 4 horas de 34 minutos.
Volumes
Foram coletados 419.753 anúncios dos quais 184.119 estavam repetidos.
O total de anúncios únicos foi de 235.634.
Forma de armazenamento
Os dados foram armazenados em uma tabela de uma base de dados do SQLite.
Após a coleta, uma nova tabela com registros únicos (não duplicados) foi gerada na mesma base de
dados.
COLETA DE DADOS
Soluções não exploradas
Dividir páginas de índice e detalhes
O problema da inclusão de novos anúncios
durante a coleta tornou-se o principal ofensor da
eficiência do script de coleta.
Uma alternativa de contorno é a divisão do
processo de coleta em duas etapas.
1. Acessar todas as páginas de índice,
coletando o endereço de todos os
anúncios antes de iniciar a coleta dos
dados dos anúncios.
2. Remover duplicatas antes da coleta dos
detalhes e então acessar cada anúncio
único.
Sincronização entre dispositivos
O problema da concorrência entre diferentes
processos executando em diferentes núcleos do
mesmo processador potencializou os problemas
de duplicidade de anúncios.
A correta utilização da memória
compartilhada poderia evitar o problema, e
abriria espaço para criação de grupos de trabalho
distintos entre os processos.
O primeiro grupo leria índices, segundo leria os
anúncios carregados pelos índices.
Esta solução diminuiria o tempo entre a
leitura do índice e a leitura do anúncio, reduzindo
as chances de não captura de alterações.
COLETA DE DADOS
Soluções não exploradas
Download e processamento posterior
O tempo gasto na pesquisa, coleta e
transformação dos dados após o download da
página HTML aumentam a chance de novos
anúncios terem sido inseridos ou removidos,
alterando a ordem dos anúncios nas páginas de
índice.
Uma alternativa para contornar o problema
é o armazenamento do conteúdo HTML das
páginas em uma base de dados de transição para
posterior processamento.
Download via requisições múltiplas
O tempo de requisição das páginas HTTP é o
principal ofensor do desempenho de coleta.
Bibliotecas escritas em C para requisição de
conteúdo via protocolo HTTP são capazes de
disparar requisições múltiplas, síncronas e
assíncronas, e reaproveitar a conexão
estabelecida com um mesmo servidor.
O uso de requisições múltiplas e
reaproveitamento de conexões pode reduzir
consideravelmente o problema do tempo de
requisição.
DESCRIÇÃO E ANÁLISES DA BASE DE DADOS
Granularidade dos dados Heatmap – registros por estado
Gráficos interativos disponíveis em: https://public.tableau.com/views/WebscrapingOLX/Histria1?:embed=y&:display_count=yes
Heatmap - Mediana dos preços de carros por estado
Gráficos interativos disponíveis em: https://public.tableau.com/views/WebscrapingOLX/Histria1?:embed=y&:display_count=yes
Mosaico de anúncios por estado
Amplitude da Amostra
Devido a uma quantidade considerável de observações que possuíam preços indicando erro de imputação do
usuário no momento do preenchimento do anúncio, assumimos arbitrariamente que esses anunciantes ou não
tinham a intenção de preencher o campo preço ou preencheram de forma incorreta, impossibilitando a análise.
Portanto, em um primeiro momento optamos por excluir 14.866 anúncios da amostra com preço (campo
actual_price) abaixo de R$500,00 e superiores a R$3.300.00,00. Esses valores foram selecionamos de acordo com
dois modelos de carro que representam o limite inferior e superior da amostra.
Id Title Actual Price
266753566 Renault Sandero privilege 2012 automatico - 2012 -1
266097646 S 10 LT 12/13 4×4 manual.extra - 2013 79990000
264825710 Vendo - 2000 96844558
265372860 Carro - 2007 99999999
Exemplo de preenchimento incorreto
Limite Superior Limite Inferior
Id Title Actual Price Description
Limite Inferior 265476614 Vw - Volkswagen Brasilia R$ 500,00 Brasília sem motor, o motor travou e tirei fora so
encaixar outro e andar
Limite Superior 266253025 Lamborghini Aventador 2016 Top - 2016 R$ 3.300.000,00 vendo Lamborghini Aventador 2016 em ótimo
estado
Mediana preço/marca
Gráficos interativos disponíveis em: https://public.tableau.com/views/WebscrapingOLX/Histria1?:embed=y&:display_count=yes
Região Estado Frequência
%
(Estado/região)
%
(Região/Brasil)
Centro-oeste
Distrito Federal - DF 9.343 46,20%
9,68%
Goiás - GO 6.854 33,89%
Mato Grosso - MT 1.650 8,16%
Mato Grosso do Sul - MS 2.375 11,74%
Total Região 20.222 100,00%
Nordeste
Alagoas - AL 1.296 4,72%
13,15%
Bahia - BA 7.198 26,21%
Ceará - CE 4.749 17,29%
Maranhão - MA 1.356 4,94%
Paraíba - PB 2.341 8,52%
Pernambuco - PE 5.575 20,30%
Piauí - PI 971 3,54%
Rio Grande do Norte - RN 2.204 8,03%
Sergipe - SE 1.773 6,46%
Total Região 27.463 100,00%
Norte
Acre - AC 599 6,47%
4,43%
Amapá - AP 309 3,34%
Amazonas - AM 2.998 32,38%
Pará - PA 2.849 30,77%
Rondônia - RO 1.147 12,39%
Roraima - RR 629 6,79%
Tocantins - TO 729 7,87%
Total Região (Norte) 9.260 100,00%
Sudeste
Espírito Santo - ES 5.644 5,10%
53,03%
Minas Gerais - MG 20.089 18,14%
Rio de Janeiro - RJ 23.089 20,85%
São Paulo - SP 61.918 55,91%
Total Região (Sudeste) 110.740 100,00%
Sul
Paraná - PR 19.406 47,16%
19,70%
Rio Grande do Sul - RS 11.962 29,07%
Santa Catarina - SC 9.780 23,77%
Total Região Sul) 41.148 100,00%
Total 208.833 100,00%
A Base permitiu inferências que
podem partir de uma análise
inicialmente ampla por região e
estado.
Região Frequência %
Baixada Santista e Litoral Sul 2.129 3,44%
Bauru, Marília e região 2.736 4,42%
Grande Campinas 8.021 12,95%
Presidente Prudente e região 2.299 3,71%
Ribeirão Preto e região 4.342 7,01%
S. José do Rio Preto e região 2.969 4,80%
São Paulo e região 31.011 50,08%
Sorocaba e região 3.341 5,40%
V. do Paraíba e Litoral Norte 5.070 8,19%
Total 61.918 100,00%
Cidade Frequência %
São Paulo 16.472 26,60%
Campinas 2.845 4,59%
São José Dos Campos 2.577 4,16%
Sorocaba 2.104 3,40%
Santo André 1.980 3,20%
Ribeirão Preto 1.945 3,14%
São Bernardo do Campo 1.886 3,05%
Guarulhos 1.751 2,83%
São José do Rio Preto 1.488 2,40%
Osasco 1.132 1,83%
Outras 27.738 44,80%
Total 61.918 100,00%
Estado de São Paulo
Chegando à análises mais micro, por região dentro
de um estadoe por cidadedentrodessaregião.
Horários de Postagens
REGIÃO NORDESTE REGIÃO NORTE
0,00%
10,00%
20,00%
30,00%
40,00%
50,00%
60,00%
70,00%
80,00%
90,00%
100,00%
% % % % % % % % %
AL BA CE MA PB PE PI RN SE
18:00 - 23:59
12:00 - 17:59
06:00 - 11:59
00:00 - 05:59
0,00%
10,00%
20,00%
30,00%
40,00%
50,00%
60,00%
70,00%
80,00%
90,00%
100,00%
% % % % % % %
AC AM AP PA RO RR TO
18:00 - 23:59
12:00 - 17:59
06:00 - 11:59
00:00 - 05:59
Horários de Postagens
REGIÃO CENTRO-OESTE REGIÃO SUDESTE
0,00%
10,00%
20,00%
30,00%
40,00%
50,00%
60,00%
70,00%
80,00%
90,00%
100,00%
% % % %
DF GO MS MT
18:00 - 23:59
12:00 - 17:59
06:00 - 11:59
00:00 - 05:59
0,00%
10,00%
20,00%
30,00%
40,00%
50,00%
60,00%
70,00%
80,00%
90,00%
100,00%
% % % %
ES MG RJ SP
18:00 - 23:59
12:00 - 17:59
06:00 - 11:59
00:00 - 05:59
Horários de Postagens
0,00%
10,00%
20,00%
30,00%
40,00%
50,00%
60,00%
70,00%
80,00%
90,00%
100,00%
% % %
SC PR RS
18:00 - 23:59
12:00 - 17:59
06:00 - 11:59
00:00 - 05:59
REGIÃO SUL

Mais conteúdo relacionado

Semelhante a Análise das Ofertas de Veículos do OLX Brasil

Apresentação Comercial e-Millennium 2017
Apresentação Comercial e-Millennium 2017Apresentação Comercial e-Millennium 2017
Apresentação Comercial e-Millennium 2017MILLENNIUM NETWORK®
 
Apresentação e-Millennium ERP para e-Commerce 2016
Apresentação e-Millennium ERP para e-Commerce 2016Apresentação e-Millennium ERP para e-Commerce 2016
Apresentação e-Millennium ERP para e-Commerce 2016MILLENNIUM NETWORK®
 
Presentation e-Millennium ERP Omni-Channel
Presentation e-Millennium ERP Omni-ChannelPresentation e-Millennium ERP Omni-Channel
Presentation e-Millennium ERP Omni-ChannelOctavio Yoshio Hozawa
 
Big Query - Escalabilidade Infinita para os seus Dados
Big Query  - Escalabilidade Infinita para os seus DadosBig Query  - Escalabilidade Infinita para os seus Dados
Big Query - Escalabilidade Infinita para os seus DadosAlvaro Viebrantz
 
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?tdc-globalcode
 
Bancos de dados no sql – uma nova abordagem
Bancos de dados no sql – uma nova abordagemBancos de dados no sql – uma nova abordagem
Bancos de dados no sql – uma nova abordagemJoão Gabriel Lima
 
2019-2 - BD I - Aula 02 - Camadas de aplicação a Banco de Dados e Introd MER
2019-2 - BD I - Aula 02 - Camadas de aplicação a Banco de Dados e Introd MER2019-2 - BD I - Aula 02 - Camadas de aplicação a Banco de Dados e Introd MER
2019-2 - BD I - Aula 02 - Camadas de aplicação a Banco de Dados e Introd MERRodrigo Kiyoshi Saito
 
OS CINCO Vs DO BIG DATA
OS CINCO Vs DO BIG DATAOS CINCO Vs DO BIG DATA
OS CINCO Vs DO BIG DATALeonardo Dias
 
Case Drupal: Todeschini
Case Drupal: TodeschiniCase Drupal: Todeschini
Case Drupal: TodeschiniMMDA
 
Do Gopher, Web Crawler, Google, pagerank, sitemaps, ontologia, ao Big Data, W...
Do Gopher, Web Crawler, Google, pagerank, sitemaps, ontologia, ao Big Data, W...Do Gopher, Web Crawler, Google, pagerank, sitemaps, ontologia, ao Big Data, W...
Do Gopher, Web Crawler, Google, pagerank, sitemaps, ontologia, ao Big Data, W...Leandro Borges
 
Google Marketing - Maratona Digital
Google Marketing - Maratona DigitalGoogle Marketing - Maratona Digital
Google Marketing - Maratona DigitalMaratona Digital
 
Windows 8 - Introdução ao desenvolvimento de apps
Windows 8 - Introdução ao desenvolvimento de appsWindows 8 - Introdução ao desenvolvimento de apps
Windows 8 - Introdução ao desenvolvimento de appsJanynne Gomes
 
Desvendando padrões para desenvolvimento web, base para o sucesso
Desvendando padrões para desenvolvimento web, base para o sucessoDesvendando padrões para desenvolvimento web, base para o sucesso
Desvendando padrões para desenvolvimento web, base para o sucessoUbiratan Z. do Nascimento
 
Futurecom 2010 - Web Semântica - Pessoas e máquinas pensando juntas!
Futurecom 2010 - Web Semântica - Pessoas e máquinas pensando juntas!Futurecom 2010 - Web Semântica - Pessoas e máquinas pensando juntas!
Futurecom 2010 - Web Semântica - Pessoas e máquinas pensando juntas!Renato Bongiorno Bonfanti
 

Semelhante a Análise das Ofertas de Veículos do OLX Brasil (20)

Apresentação Comercial e-Millennium 2017
Apresentação Comercial e-Millennium 2017Apresentação Comercial e-Millennium 2017
Apresentação Comercial e-Millennium 2017
 
Apresentacao Ondaweb 2010
Apresentacao Ondaweb 2010Apresentacao Ondaweb 2010
Apresentacao Ondaweb 2010
 
Apresentação e-Millennium ERP para e-Commerce 2016
Apresentação e-Millennium ERP para e-Commerce 2016Apresentação e-Millennium ERP para e-Commerce 2016
Apresentação e-Millennium ERP para e-Commerce 2016
 
Presentation e-Millennium ERP Omni-Channel
Presentation e-Millennium ERP Omni-ChannelPresentation e-Millennium ERP Omni-Channel
Presentation e-Millennium ERP Omni-Channel
 
Big Query - Escalabilidade Infinita para os seus Dados
Big Query  - Escalabilidade Infinita para os seus DadosBig Query  - Escalabilidade Infinita para os seus Dados
Big Query - Escalabilidade Infinita para os seus Dados
 
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
 
Temas estudo
Temas estudoTemas estudo
Temas estudo
 
Bancos de dados no sql – uma nova abordagem
Bancos de dados no sql – uma nova abordagemBancos de dados no sql – uma nova abordagem
Bancos de dados no sql – uma nova abordagem
 
2019-2 - BD I - Aula 02 - Camadas de aplicação a Banco de Dados e Introd MER
2019-2 - BD I - Aula 02 - Camadas de aplicação a Banco de Dados e Introd MER2019-2 - BD I - Aula 02 - Camadas de aplicação a Banco de Dados e Introd MER
2019-2 - BD I - Aula 02 - Camadas de aplicação a Banco de Dados e Introd MER
 
OS CINCO Vs DO BIG DATA
OS CINCO Vs DO BIG DATAOS CINCO Vs DO BIG DATA
OS CINCO Vs DO BIG DATA
 
Curso HTML 5 - Aula Inicial
Curso HTML 5 - Aula InicialCurso HTML 5 - Aula Inicial
Curso HTML 5 - Aula Inicial
 
Case Drupal: Todeschini
Case Drupal: TodeschiniCase Drupal: Todeschini
Case Drupal: Todeschini
 
Equinox Web
Equinox WebEquinox Web
Equinox Web
 
Do Gopher, Web Crawler, Google, pagerank, sitemaps, ontologia, ao Big Data, W...
Do Gopher, Web Crawler, Google, pagerank, sitemaps, ontologia, ao Big Data, W...Do Gopher, Web Crawler, Google, pagerank, sitemaps, ontologia, ao Big Data, W...
Do Gopher, Web Crawler, Google, pagerank, sitemaps, ontologia, ao Big Data, W...
 
Case study amazon
Case study amazonCase study amazon
Case study amazon
 
Google Marketing - Maratona Digital
Google Marketing - Maratona DigitalGoogle Marketing - Maratona Digital
Google Marketing - Maratona Digital
 
Whole Site Delivery with Amazon CloudFront
Whole Site Delivery with Amazon CloudFrontWhole Site Delivery with Amazon CloudFront
Whole Site Delivery with Amazon CloudFront
 
Windows 8 - Introdução ao desenvolvimento de apps
Windows 8 - Introdução ao desenvolvimento de appsWindows 8 - Introdução ao desenvolvimento de apps
Windows 8 - Introdução ao desenvolvimento de apps
 
Desvendando padrões para desenvolvimento web, base para o sucesso
Desvendando padrões para desenvolvimento web, base para o sucessoDesvendando padrões para desenvolvimento web, base para o sucesso
Desvendando padrões para desenvolvimento web, base para o sucesso
 
Futurecom 2010 - Web Semântica - Pessoas e máquinas pensando juntas!
Futurecom 2010 - Web Semântica - Pessoas e máquinas pensando juntas!Futurecom 2010 - Web Semântica - Pessoas e máquinas pensando juntas!
Futurecom 2010 - Web Semântica - Pessoas e máquinas pensando juntas!
 

Análise das Ofertas de Veículos do OLX Brasil

  • 1. UMA ANÁLISE DAS OFERTAS ON- LINE DE VEÍCULOS DOS USUÁRIOS DO OLX BRASIL AFONSO VALAU DE LIMA JUNIOR; DIEGO MAGALHÃES MENEZES; DOUGLAS ZANATTA ULIAN; SANDRIELEM DA SILVA RODRIGUES
  • 2. Contexto Ao longo da última década, inovadores modelos de negócios têm surgido, trazendo mudanças fundamentais aos tradicionais modelos econômicos. Empresas como a OLX, Airbnb, eBay, entre outras, têm utilizado plataformas on-line para conectar oferta e demanda, promovendo a interação de consumidores que formam ambos os lados do mercado. Estas iniciativas apresentam rápido crescimento e estão sendo classificadas como parte de uma “economia colaborativa” (OWYANG, TRAN e SILVA, 2013; TANZ, 2014).
  • 3. Panorama Geral da Pesquisa • Esta pesquisa centra-se em utilizar os dados do OLX (abreviatura de “Online Exchange" – “troca online”), presente em mais de 100 países e em mais de 50 línguas. Em função dos recursos disponíveis para a pesquisa optou-se por extrair os dados de usuários brasileiros (http://www.olx.com.br/) que anunciaram na categoria “veículos e barcos”, subcategoria “carros”. • Para a coleta de dados utilizou-se o web scraping (extração de dados na web). O web scraping é uma técnica de software que visa a extração de informações, simulando a exploração humana da World Wide Web. Concentra-se em transformar dados não estruturados presentes na web (no formato de HTML) em dados estruturados que podem ser armazenados e analisados em um banco de dados ou planilha eletrônica. • As análises dos dados coletados centrou-se em identificar diferenças de preço dos mesmos produtos em diferentes regiões do Brasil, bem como, apresentar uma estatística descritivas dos anúncios coletados.
  • 4. OLX BRASIL • O OLX Brasil é um site de classificados, onde os usuários podem vender e comprar itens usados, como vestuário, carros, equipamentos eletrônicos, móveis e imóveis. • De um lado do mercado estão os vendedores, esses podem postar anúncios de produtos ou serviços que eles desejam comercializar, sendo cada anúncio, classificado em sua respectiva categoria e subcategorias. • Do outro lado do mercado, estão os compradores, que podem responder aos anúncios postados, entrando em contato com o vendedor para fazer uma pergunta, uma oferta de um novo preço, ou mesmo combinar a compra. Desta forma, o OLX atua facilitando a conexão desses dois lados do mercado (oferta e demanda), não havendo qualquer transação monetária, esta, por sua vez, é combinada entre os usuários. • Atualmente a maioria das funcionalidades oferecidas pelo OLX são gratuitas, como criar conta e anunciar um produto. No entanto, há opções para um anúncio pago e também para destacar um anúncio, caso o usuário deseje fazê-lo. Desta forma, o principal objetivo do OLX é aumentar o número de listagens lançadas, afim de tornar-se uma plataforma valiosa para a oferta e compra de produtos.
  • 5. COLETA DE DADOS • Estrutura do OLX • Estratégia Inicial de coleta • Ferramentas utilizadas • Características do código de coleta • Problemas encontrados e seus contornos • Resultados obtidos • Soluções não exploradas
  • 6. COLETA DE DADOS Estrutura do OLX • Dados estruturados • Duas estruturas de classificação • Categórica • Geográfica • Combinação de categorias é utilizada para filtro dos anúncios
  • 7. COLETA DE DADOS Estrutura do OLX • Anúncios ordenados por recência • Divididos em páginas de índice • Lista de páginas de índice • Página de detalhes do anúncio
  • 8. COLETA DE DADOS Estrutura do OLX • Geração automática de páginas • CSS bem formatado facilita coleta • Diferentes categorias e subcategorias, estrutura genérica • Qualidade e organização do gerador da aplicação que gera as páginas
  • 9. COLETA DE DADOS Estratégia inicial de coleta • Imitação do comportamento humano 1. Configurar a URL da página de índice da subcategoria versus região 2. Configurar a quantidade de páginas de índice a serem lidas 3. Criar estrutura da base de dados onde os anúncios serão armazenados 4. Iterar pelas páginas de índice, da primeira até a última 5. Acessar e extrair os anúncios de cada página de índice 6. Iterar pelos anúncios da página de índice 7. Acessar e extrair dados dos detalhes de cada anúncio 8. Transformar os dados para padronização 9. Armazenar dados no banco de dados
  • 10. COLETA DE DADOS Ferramentas utilizadas Computador • Notebook DELL Vostro 3450 • Processador Intel(R) Core(TM) i7-2640M CPU @ 2.80GHz 2.80 GHz • Memória RAM de 6,00 GB • Disco Rígido de 750 GB • Sistema Operacional Windows 7 Professional 64 Bits OEM com Service Pack 1 • Adaptador de rede Dell Wireless 1702 802.11b/g/n • Protocolo de conexão sem fio 802.11/n • Acess Point/Router/Acess Point HUMAX Cable RG modelo HG100R-L2 • Link de internet ADSL de 30 Mbps da operadora NET R • Ambiente de software para computação estatística e gráfica. • Versão 3.3.1 para processadores de 64 bits. • Utilizado para execução dos scripts de coleta e análise dos dados. R Studio • Ambiente de desenvolvimento integrado (IDE) para o R. • Versão 0.99.893 para processadores de 64 bits. • Utilizado no desenvolvimento e na execução dos scripts. SQLite • Sistema Gerenciador de Banco de Dados Standalone. • Versão 3.14.1 2016-08-11 18:53:32 • Utilizado no armazenamento dos dados. DBeaver • Sistema de Administração de Bancos de Dados • Versão 3.7.8 • Utilizado na consulta aos dados coletados.
  • 11. COLETA DE DADOS Bibliotecas utilizadas RVest • Biblioteca de funções para download e para manipulação de conteúdo XML e HTML. • Versão 0.3.2 • Utilizada para busca e coleta dos dados das páginas acessadas. RSQLite • Biblioteca de funções para manipulação de bases de dados do SQLite. • Versão 1.0.0 • Utilizada para criação da base de dados, leitura e carga dos dados. lubridate • Biblioteca de funções para manipulação de datas. • Versão 1.6.0 • Utilizada para padronização de formatos de datas. stringr • Biblioteca de funções para manipulação variáveis literais. • Versão 1.1.0 • Utilizada para troca de codificação dos textos. bigmemory • Biblioteca de funções para manipulação de grandes estruturas de dados. • Versão 4.5.19 • Utilizada para o acesso compartilhado à memória RAM por processos rodando em núcleos diferentes. foreach • Biblioteca de funções para computação paralela. • Versão 1.4.30 • Utilizada para divisão da carga de trabalho entre os núcleos do processador do computador. doSNOW • Biblioteca de funções para computação paralela. • Versão 1.0.14 • Utilizada em combinação com foreach para criação de cluster do tipo SOCK no sistema operacional Windows.
  • 12. COLETA DE DADOS Características do código de coleta • Isolamento de funcionalidades em funções • 997 linhas de código • 21 funções • Função principal contendo 78 linhas • Menor função contendo 4 linhas • Maior função contendo 201 linhas • Não utilização de variáveis globais
  • 13. COLETA DE DADOS Problemas encontrados e seus contornos Telefone armazenado como imagem • Problema Diferente da maioria dos dados armazenados no código HTML, o telefone do anunciante é apresentado em uma imagem do tipo "TIF" com fundo transparente. • Contorno Download da imagem, transformação do padrão "TIF" de fundo transparente para o padrão "JPEG" com fundo branco utilizando o ImageMagik, leitura dos dados através de um software de reconhecimento óptico de caracteres (OCR) tesseract. Desempenho • Problema O tempo médio de coleta de um anúncio, na estratégia inicial, foi de 3 segundos aproximadamente levando o tempo total de coleta de 1 milhão de anúncios para 34,72 dias aproximadamente. • Contorno Utilizar processamento paralelo para dividir a carga de trabalho entre os núcleos do processador do computador de coleta. O tempo médio de coleta de um anúncio passou para 1,09 segundos aproximadamente levando o tempo total de coleta para 12,62 dias aproximadamente. Caracteres inválidos • Problema O texto imputado em alguns anúncios contém caracteres cuja codificação difere do padrão de codificação da página do OLX. Embora os navegadores resolvam esta "mistura" de codificações, a biblioteca RVest não o faz. • Contorno Tratamento de excessões no código de download da página para tentativa com os principais padrões de codificação. Falha na função de substituição de caracteres do R • Problema A função "gsub" do R, que substitui cadeias padrão de caracteres em uma variável literal por outra cadeia de caracteres, gera caracteres inválidos quando o padrão de codificação quando a cadeia de caracteres a ser substituída possui codificação indefinida. • Contorno Identificação de caracteres com codificação desconhecida e aplicação de codificação padrão.
  • 14. COLETA DE DADOS Problemas encontrados e seus contornos Duplicação de anúncios • Problema Ao mesmo tempo que o script percorre as páginas de índice e acessa os anúncios, usuários vendedores inserem novos anúncios. Como os anúncios são ordenados conforme sua rescência, alguns anúncios acabam trocando de página, passando para páginas mais antigas conforme os novos anúncios são inseridos. Com isso os últimos anúncios de uma página de índice tornam-se os primeiros da página seguinte e o script acaba por ler o mesmo anúncio mais de uma vez, perdendo eficiência. O uso de computação paralela amplifica o problema. • Contorno Utilizar uma lista compartilhada entre os múltiplos processos de coleta para armazenar anúncios já lidos. Para o acesso compartilhado a lista foi utilizada uma biblioteca de manipulação de grandes estruturas de dados. Esta biblioteca utiliza ponteiros para o acesso a memória ROM que apontam sempre para o mesmo endereço, mesmo quando acessados por diferentes processos. A solução não resolveu o problema e não houve tempo suficiente para investigar a causa. A principal hipótese é o uso incorreto da biblioteca de acesso compartilhado à memória. Repetição da última página • Problema A quantidade de páginas de índice varia conforme novos anúncios são inseridos ou removidos por usuários vendedores. Quando o script tenta acessar uma página de índice que não existe mais, a última página de índice é retornada. O script, não sabendo que trata-se da mesma página, continua baixando os anúncios e passando à próxima página. Enquanto o índice da suposta última página não é acessado, os anúncios da última página real são replicados na base de dados. O uso de computação paralela amplifica o problema. • Contorno Utilização da memória compartilhada para anotar o índice da página de índice acessada e verificar se a página já não foi lida.
  • 15. COLETA DE DADOS Problemas encontrados e seus contornos Desempenho paralelo • Problema Por padrão, conforme os acessos HTTP crescem, as conexões HTTP são recriadas. Ao recriar a conexão, o processo de renegociação da conexão com o servidor gasta tempo extra, aumentando o tempo médio de coleta dos anúncios para 1,62 segundos aproximadamente. Neste cenário, a coleta de todos os anúncios levaria 18,76. • Contorno proposto Medir o tempo de execução de cada parte do código para identificar o trecho de baixo desempenho. Identificar o problema com a recriação de conexões HTTP. Utilizar a biblioteca RCurl para realizar requisições HTTP múltiplas e reutilização de conexões. Não foi possível concluir a implementação da coleta com a nova biblioteca. Os testes com 200 acessos múltiplos fizeram com que o provedor banisse a conexão ADSL. Foi necessário contato por telefone com a equipe técnica para reestabelecimento da conexão. Testes com 50 acessos múltiplos tiveram sucesso. Queda do link de internet/falta de luz • Problema Após 8 dias de execução, a conexão de ADSL de internet com o provedor foi perdida. Dois dias após a nova execução, um temporal derrubou uma árvore sobre o transformador de energia que alimentava o computador e o link de internet, desligando o computador e a conexão com a internet. • Contorno Em ambos os casos, o script foi reconfigurado para retomar a coleta a partir da página de índice do último anúncio lido. No hiato entre uma execução e outra, registros podem ter sido alterados, incluídos ou excluídos, prejudicando a qualidade da coleta e a representatividade da amostra.
  • 16. COLETA DE DADOS Resultados obtidos Tempos de coleta No total foram executadas 3 coletas: • Do dia 7/11/2016 às 02:16 até o dia 7/11/2016 às 19:09 totalizando 16 horas e 53 minutos • Do dia 7/11/2016 às 20:05 até o dia 15/11/2016 às 23:24 totalizando 195 horas e 19 minutos • Do dia 15/11/2015 às 23:47 até o dia 17/11/2016 às 08:09 totalizando 32 horas e 22 minutos • O tempo total de coleta foi de 10 dias 4 horas de 34 minutos. Volumes Foram coletados 419.753 anúncios dos quais 184.119 estavam repetidos. O total de anúncios únicos foi de 235.634. Forma de armazenamento Os dados foram armazenados em uma tabela de uma base de dados do SQLite. Após a coleta, uma nova tabela com registros únicos (não duplicados) foi gerada na mesma base de dados.
  • 17. COLETA DE DADOS Soluções não exploradas Dividir páginas de índice e detalhes O problema da inclusão de novos anúncios durante a coleta tornou-se o principal ofensor da eficiência do script de coleta. Uma alternativa de contorno é a divisão do processo de coleta em duas etapas. 1. Acessar todas as páginas de índice, coletando o endereço de todos os anúncios antes de iniciar a coleta dos dados dos anúncios. 2. Remover duplicatas antes da coleta dos detalhes e então acessar cada anúncio único. Sincronização entre dispositivos O problema da concorrência entre diferentes processos executando em diferentes núcleos do mesmo processador potencializou os problemas de duplicidade de anúncios. A correta utilização da memória compartilhada poderia evitar o problema, e abriria espaço para criação de grupos de trabalho distintos entre os processos. O primeiro grupo leria índices, segundo leria os anúncios carregados pelos índices. Esta solução diminuiria o tempo entre a leitura do índice e a leitura do anúncio, reduzindo as chances de não captura de alterações.
  • 18. COLETA DE DADOS Soluções não exploradas Download e processamento posterior O tempo gasto na pesquisa, coleta e transformação dos dados após o download da página HTML aumentam a chance de novos anúncios terem sido inseridos ou removidos, alterando a ordem dos anúncios nas páginas de índice. Uma alternativa para contornar o problema é o armazenamento do conteúdo HTML das páginas em uma base de dados de transição para posterior processamento. Download via requisições múltiplas O tempo de requisição das páginas HTTP é o principal ofensor do desempenho de coleta. Bibliotecas escritas em C para requisição de conteúdo via protocolo HTTP são capazes de disparar requisições múltiplas, síncronas e assíncronas, e reaproveitar a conexão estabelecida com um mesmo servidor. O uso de requisições múltiplas e reaproveitamento de conexões pode reduzir consideravelmente o problema do tempo de requisição.
  • 19. DESCRIÇÃO E ANÁLISES DA BASE DE DADOS
  • 20.
  • 21. Granularidade dos dados Heatmap – registros por estado Gráficos interativos disponíveis em: https://public.tableau.com/views/WebscrapingOLX/Histria1?:embed=y&:display_count=yes
  • 22. Heatmap - Mediana dos preços de carros por estado Gráficos interativos disponíveis em: https://public.tableau.com/views/WebscrapingOLX/Histria1?:embed=y&:display_count=yes
  • 23. Mosaico de anúncios por estado
  • 24. Amplitude da Amostra Devido a uma quantidade considerável de observações que possuíam preços indicando erro de imputação do usuário no momento do preenchimento do anúncio, assumimos arbitrariamente que esses anunciantes ou não tinham a intenção de preencher o campo preço ou preencheram de forma incorreta, impossibilitando a análise. Portanto, em um primeiro momento optamos por excluir 14.866 anúncios da amostra com preço (campo actual_price) abaixo de R$500,00 e superiores a R$3.300.00,00. Esses valores foram selecionamos de acordo com dois modelos de carro que representam o limite inferior e superior da amostra. Id Title Actual Price 266753566 Renault Sandero privilege 2012 automatico - 2012 -1 266097646 S 10 LT 12/13 4×4 manual.extra - 2013 79990000 264825710 Vendo - 2000 96844558 265372860 Carro - 2007 99999999 Exemplo de preenchimento incorreto
  • 25. Limite Superior Limite Inferior Id Title Actual Price Description Limite Inferior 265476614 Vw - Volkswagen Brasilia R$ 500,00 Brasília sem motor, o motor travou e tirei fora so encaixar outro e andar Limite Superior 266253025 Lamborghini Aventador 2016 Top - 2016 R$ 3.300.000,00 vendo Lamborghini Aventador 2016 em ótimo estado
  • 26. Mediana preço/marca Gráficos interativos disponíveis em: https://public.tableau.com/views/WebscrapingOLX/Histria1?:embed=y&:display_count=yes
  • 27. Região Estado Frequência % (Estado/região) % (Região/Brasil) Centro-oeste Distrito Federal - DF 9.343 46,20% 9,68% Goiás - GO 6.854 33,89% Mato Grosso - MT 1.650 8,16% Mato Grosso do Sul - MS 2.375 11,74% Total Região 20.222 100,00% Nordeste Alagoas - AL 1.296 4,72% 13,15% Bahia - BA 7.198 26,21% Ceará - CE 4.749 17,29% Maranhão - MA 1.356 4,94% Paraíba - PB 2.341 8,52% Pernambuco - PE 5.575 20,30% Piauí - PI 971 3,54% Rio Grande do Norte - RN 2.204 8,03% Sergipe - SE 1.773 6,46% Total Região 27.463 100,00% Norte Acre - AC 599 6,47% 4,43% Amapá - AP 309 3,34% Amazonas - AM 2.998 32,38% Pará - PA 2.849 30,77% Rondônia - RO 1.147 12,39% Roraima - RR 629 6,79% Tocantins - TO 729 7,87% Total Região (Norte) 9.260 100,00% Sudeste Espírito Santo - ES 5.644 5,10% 53,03% Minas Gerais - MG 20.089 18,14% Rio de Janeiro - RJ 23.089 20,85% São Paulo - SP 61.918 55,91% Total Região (Sudeste) 110.740 100,00% Sul Paraná - PR 19.406 47,16% 19,70% Rio Grande do Sul - RS 11.962 29,07% Santa Catarina - SC 9.780 23,77% Total Região Sul) 41.148 100,00% Total 208.833 100,00% A Base permitiu inferências que podem partir de uma análise inicialmente ampla por região e estado.
  • 28. Região Frequência % Baixada Santista e Litoral Sul 2.129 3,44% Bauru, Marília e região 2.736 4,42% Grande Campinas 8.021 12,95% Presidente Prudente e região 2.299 3,71% Ribeirão Preto e região 4.342 7,01% S. José do Rio Preto e região 2.969 4,80% São Paulo e região 31.011 50,08% Sorocaba e região 3.341 5,40% V. do Paraíba e Litoral Norte 5.070 8,19% Total 61.918 100,00% Cidade Frequência % São Paulo 16.472 26,60% Campinas 2.845 4,59% São José Dos Campos 2.577 4,16% Sorocaba 2.104 3,40% Santo André 1.980 3,20% Ribeirão Preto 1.945 3,14% São Bernardo do Campo 1.886 3,05% Guarulhos 1.751 2,83% São José do Rio Preto 1.488 2,40% Osasco 1.132 1,83% Outras 27.738 44,80% Total 61.918 100,00% Estado de São Paulo Chegando à análises mais micro, por região dentro de um estadoe por cidadedentrodessaregião.
  • 29. Horários de Postagens REGIÃO NORDESTE REGIÃO NORTE 0,00% 10,00% 20,00% 30,00% 40,00% 50,00% 60,00% 70,00% 80,00% 90,00% 100,00% % % % % % % % % % AL BA CE MA PB PE PI RN SE 18:00 - 23:59 12:00 - 17:59 06:00 - 11:59 00:00 - 05:59 0,00% 10,00% 20,00% 30,00% 40,00% 50,00% 60,00% 70,00% 80,00% 90,00% 100,00% % % % % % % % AC AM AP PA RO RR TO 18:00 - 23:59 12:00 - 17:59 06:00 - 11:59 00:00 - 05:59
  • 30. Horários de Postagens REGIÃO CENTRO-OESTE REGIÃO SUDESTE 0,00% 10,00% 20,00% 30,00% 40,00% 50,00% 60,00% 70,00% 80,00% 90,00% 100,00% % % % % DF GO MS MT 18:00 - 23:59 12:00 - 17:59 06:00 - 11:59 00:00 - 05:59 0,00% 10,00% 20,00% 30,00% 40,00% 50,00% 60,00% 70,00% 80,00% 90,00% 100,00% % % % % ES MG RJ SP 18:00 - 23:59 12:00 - 17:59 06:00 - 11:59 00:00 - 05:59
  • 31. Horários de Postagens 0,00% 10,00% 20,00% 30,00% 40,00% 50,00% 60,00% 70,00% 80,00% 90,00% 100,00% % % % SC PR RS 18:00 - 23:59 12:00 - 17:59 06:00 - 11:59 00:00 - 05:59 REGIÃO SUL