Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/viniventur/ecommerce_scraper_dashboard

Coleta de informações de produtos dos sites de vendas utilizando Web Scraping e integra com dashboard em Streamlit para análise dos dados coletados.
https://github.com/viniventur/ecommerce_scraper_dashboard

dataanalysis streamlit webscraping

Last synced: about 1 month ago
JSON representation

Coleta de informações de produtos dos sites de vendas utilizando Web Scraping e integra com dashboard em Streamlit para análise dos dados coletados.

Awesome Lists containing this project

README

        

# Scraping de Anúncios de Produtos na Web :shopping_cart:


Selenium
Streamlit

## Descrição
Este projeto tem como objetivo realizar a coleta de informações de produtos dos sites de e-commerce utilizando Web Scraping e integração com um **dashboard interativo em Streamlit** para análise dos dados coletados.

O pipeline principal do projeto está dividido em:

1. **Coleta de Dados**:
- Realiza requisições para as APIs do Magazine Luiza para extrair informações sobre produtos, como nome, preço, avaliações, parcelamento, etc.
- Lida com limitações de rate limiting (códigos de status `429`) utilizando intervalos aleatórios e cabeçalhos dinâmicos.
- Trata exceções para garantir que os dados coletados até uma página sejam retornados mesmo em caso de falhas.

2. **Processamento e Limpeza de Dados**:
- Normaliza os dados JSON em um formato tabular utilizando **pandas**.
- Seleciona as colunas mais relevantes para análise.
- Renomeia as colunas para uma nomenclatura em português.
- Converte colunas numéricas para tipos adequados (e.g., `float`).

3. **Desenvolvimento do Dashboard** (próxima etapa):
- Apresenta as informações coletadas em um dashboard interativo utilizando **Streamlit**.
- Oferece filtros por preço, avaliação, parcelamento, etc.
- Gera gráficos e tabelas dinâmicas para facilitar a tomada de decisão.

## Estrutura do Projeto

### **Coleta de Dados**

#### Função Principal
A função `buscar_produtos_magalu` realiza a coleta de dados diretamente da API do Magazine Luiza. Ela possui:
- **Parâmetros**:
- `produto`: Nome do produto a ser buscado (e.g., "notebook gamer").
- `ordenar_por`: Coluna para ordenar o DataFrame final (e.g., `MelhorPreco`).
- `ascendente`: Ordem da ordenação (True para ascendente, False para descendente).
- **Trata erros**: Caso alguma página não seja carregada, os dados já obtidos são processados.
- **Controla rate limiting**: Utiliza intervalos aleatórios entre as requisições e cabeçalhos dinâmicos para evitar bloqueios.

#### Principais Recursos Extraídos:
- Nome do produto
- Marca
- Vendedor
- Preço (à vista, cheio e parcelado)
- Avaliações
- Descrição (cores, tamanhos, etc.)
- Informações de parcelamento

#### Exemplo de Uso:
```python
produto = "notebook gamer"
df_produtos = buscar_produtos_magalu(produto, ordenar_por='MelhorPreco', ascendente=True)
print(df_produtos)
```

### **Processamento de Dados**
Os dados coletados são:
1. Filtrados para exibir apenas colunas relevantes.
2. Renomeados para uma nomenclatura amigável (e.g., `title` → `Produto`).
3. Convertidos para tipos numéricos onde aplicável (e.g., preços e avaliações).
4. Ordenados pela coluna desejada (e.g., `MelhorPreco`).

### **Desenvolvimento do Dashboard (Próxima Etapa)**
O dashboard será criado com **Streamlit** para:
- Exibir os dados coletados em tabelas interativas.
- Permitir filtros por preço, avaliação, vendedor, etc.
- Gerar visualizações gráficas (e.g., histograma de preços, distribuição de avaliações).
- Mostrar insights de produtos mais baratos, melhor avaliados e com melhor custo-benefício.

## Tecnologias Utilizadas

- **Linguagem**: Python
- **Bibliotecas**:
- `requests`: Para realizar requisições HTTP.
- `pandas`: Para processamento e organização dos dados.
- `Streamlit`: Para criação do dashboard interativo.
- `time` e `random`: Para intervalos e controle de requisições.

## Melhorias Futuras
1. **Coleta de Dados**:
- Adicionar suporte para mais sites de lojas.
- Implementar suporte à paginação automática para diferentes sites.
2. **Dashboard**:
- Permitir exportação dos dados filtrados em formatos como CSV ou Excel.