Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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.
- Host: GitHub
- URL: https://github.com/viniventur/ecommerce_scraper_dashboard
- Owner: viniventur
- License: mit
- Created: 2024-12-24T19:50:57.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2024-12-24T21:17:55.000Z (about 1 month ago)
- Last Synced: 2024-12-24T21:22:16.101Z (about 1 month ago)
- Topics: dataanalysis, streamlit, webscraping
- Language: Jupyter Notebook
- Homepage:
- Size: 7.81 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Scraping de Anúncios de Produtos na Web :shopping_cart:
## 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.