• Nenhum resultado encontrado

4 DESENVOLVIMENTO DA FERRAMENTA

4.2 EXTRAÇÃO DOS DADOS

Neste capítulo são abordadas as etapas de análise inicial dos dados e o processo de extração, especificando as abordagens utilizadas para cada PDV.

4.2.1 Fonte de dados

Os dados são extraídos da Web, disponibilizados nas lojas virtuais dos pontos de vendas, onde são disponibilizados pelos supermercados para realização de compras online. Os Pontos de venda que fornecem os dados para o desenvolvimento deste trabalho são: Bistek, Imperatriz e Fort Atacadista.

Nesta etapa, não é possível quantificar objetivamente o número de produtos disponíveis por ponto de venda. Também não é transparente, nesta etapa, quais são os atributos CSS de cada site que devem ser capturados ou como o dado de produto é construído.

A Figura 8 apresenta a prateleira virtual do PDV Forte Atacadista.

Figura 8 – Prateleira online de um PDV

Fonte: Delivery Fort Atacadista (2022)

Cada ponto de venda apresenta uma estrutura de dados diferente para produto e que influencia na forma que os dados são capturados. Mais detalhes são apresentados no Capítulo 4.2.2 Análise Inicial dos Dados.

4.2.2 Análise inicial dos dados

A análise inicial dos dados tem como objetivo, verificar se os dados necessários para a realização da extração são existentes nos pontos de vendas e quantificá-los. Para cada ponto de venda, é necessário adotar estratégias específicas para extrair e avaliar os dados, estas estratégias são abordadas no Capítulo 4.2.3, Extração de Dados.

O relatório preliminar da análise inicial dos dados está apresentado na Tabela 2.

Tabela 2 – Análise quantitativa dos dados extraídos

Rede de

Supermercado

Total de Categorias Total de Subcategorias

Total de Produtos

Forte 13 79 4868

Imperatriz 12 73 4994

Bistek 12 105 11738

O supermercado Fort e Imperatriz possuem estruturas idênticas de produtos e em ambos o JSON pode ser interceptado durante a comunicação com o servidor. Esta estrutura é apresentada na Figura 12.

4.2.3 Extração dos dados

A ferramenta WrapApi é utilizada nesta etapa, Figura 10, que age conforme um wrapper, especificamente em sites de supermercado, não havendo a necessidade de implementação de um crawler, pois os domínios são conhecidos, extraindo das páginas Web os produtos que estão disponibilizados para compra.

Figura 9 – Interface do Wrap Api

Fonte: wrapapi.com (2022)

Para cada supermercado é criada uma estrutura básica de um objeto com as características de um produto e as informações necessárias do produto. Independente do formato original interceptado, (Figura 12), o Wrap Api constrói o objeto na estrutura desejada, apresentado na Figura 10, este objeto contém as informações relevantes baseado nos parâmetros desejados à extração

Figura 10 – Exemplo de JSON de produto criado através do WrapApi

{

"success": true, "data": {

"product": [ {

"subcategory_name": "Vinho TInto",

"thumbnail":"https://fortatacadista.vteximg.com.br/arquivos/ids/212763-180-180/053.jpg?v=637448504639200000",

"link": "https://www.deliveryfort.com.br/vinho-chileno-cosecha-tarapaca-merlot-750ml/p",

"name": "Vinho Chileno Cosecha Tarapacá Merlot 750ml", "on_sale": false,

"price": "R$ 34,90"

}]

}

Fonte: WrapApi.com (2022)

A API construída no Wrap Api é parametrizável, permitindo a navegação na página do ponto de venda, categorias e subcategorias. Para acessar a API é necessário possuir as chaves criptografadas que são obtidas através da ferramenta, esta API fica disponibilizada para acesso do micro serviço Extrator.

O Extrator realiza a comunicação com a API disponibilizada pela ferramenta WrapApi, realiza a busca dos dados, o objeto já vem em um formato conhecido pelo extrator que então, realiza requisições para a API, essas requisições podem ser parametrizadas ou não, dependendo especificamente da abordagem utilizada para o site específico.

Os dados dos produtos são extraídos dos supermercados e então segue o seguinte fluxo:

padronização, salvamento, transformação e disponibilização (Figura 11).

Figura 11 - Fluxo Geral da Ferramenta

A ferramenta WrapApi é configurada para cada prateleira virtual de forma específica, desta forma, gerando um endpoints diferente para extração de produtos em diferentes pontos de venda, porém mantendo o fluxo de dados.

A extração dos dados do supermercado Fort e Imperatriz é realizada incialmente através da leitura das categorias e subcategorias. Um endpoint específico extrai estas informações e seus respectivos ids.

A extração dos produtos é realizada através de outro endpoint, que utiliza os ids das categorias e subcategorias extraídos previamente como query params, realizando a extração de forma paginada, a cada requisição 30 produtos são extraídos, outro endpoint verifica se há nova página, se houver, o processo de extração de produtos é repetido. O JSON obtido na consulta para supermercados Fort e Imperatriz estão representados na Figura 12.

Figura 12– Objeto de produto capturado em formato JSON

{

"produto_id": 6877,

"classificacao_mercadologica_id": 71, "marca_id": 1048,

"descricao": "Bebida Energética Fusion Gf 1 L", "imagem": "f71e618e-6311-4d4a-9216-75053f6b58b8.jpg", "disponivel": true,

"preco": "9.98", "priorizado": false, "quantidade_minima": "1", "quantidade_maxima": "4", "bebida_alcoolica": false,

"link": "bebida-energetica-fusion-gf-1-l", "codigo_barras": "7891991011808",

"quantidade_vendida": 0, "em_oferta": false, "oferta": null,

"quantidade_unidade_diferente": 1, "exibe_preco_original": false, "preco_original": 0,

"unidade_sigla": "GF",

"possui_unidade_diferente": false, "permitir_observacao_na_compra": false, "observacao": null,

"unidade_fracao": { "sigla": null, "quantidade": null, "fracao": 1,

"preco": 0 },

"secao_id": 71, "busca_item": null, "colecoes": null, "id": "5139"

}

Fonte: Delivery Fort Atacadista (2022)

Para o supermercado Bistek não é possível capturar o JSON trafegado, devido a programação utilizada no desenvolvimento do site, portanto, a estratégia para extrair os dados do Bistek requer conhecer o domínio do marketplace, identificar e selecionar os CSSs que contém as informações relevantes através da interface Web do Wrap Api, utilizando jQuery CSS Selectors (JQUERY, 2022), para realizar a extração das informações. O documento JSON extraído do Bistek é na verdade informações capturadas na página e montadas através do Wrap Api apresentado na Figura 11.

Para este PDV as categorias e subcategorias são parametrizadas diretamente no extrator que monta a requisição internamente e realiza a consulta para a extração dos dados.

A abordagem de navegabilidade das páginas é a mesma para todos os PDVs.

Primeiramente, encontram-se as categorias e para cada categoria, buscam-se os produtos que a esta pertencem, até a última página da categoria, então, navega-se para a próxima categoria.

O backend, desenvolvido em Python executa a chamada para a API do WrapApi com a intenção de recuperar os dados dos produtos neste momento ocorre a primeira transformação dos dados, a fim de padronizá-los.

4.2.4 Qualidade dos dados

A etapa de avaliação de qualidade, neste trabalho, tem o objetivo de verificar a estrutura que os dados são disponibilizados, verificar formatos e atributos a fim de determinar as transformações necessárias para os objetos da extração. Através da ferramenta é possível ver as informações que se deseja coletar, mas não é possível enxergar a estrutura dos dados trafegados e armazenados nos PDVs. A ferramenta WrapApi disponibiliza um plugin para navegadores que permite obter mais informações que transitam nas requisições entre os sites e os servidores, estas informações são capturadas para que seja possível avaliar a qualidade dos dados.

Documentos relacionados