Bem-vindo ao projeto de web scraping automatizado do site Shein! Este projeto foi desenvolvido para automatizar a extração de dados de produtos do site Shein, armazená-los em um banco de dados SQLite, validar os dados utilizando o Pydantic e disponibilizar uma API para gerenciar os endpoints da aplicação. 🕵️♂️📈
- Web Scraping Automatizado: Utiliza Selenium para automatizar a navegação e extração de dados de produtos do site Shein. 🌐🤖
- Armazenamento em Banco de Dados: Utiliza um banco de dados SQLite para armazenar os dados extraídos. 🗃️📊
- Validação de Dados com Pydantic: Utiliza o Pydantic para validar os dados extraídos antes de armazená-los no banco de dados. ⚙️🔍
- API FastAPI: Disponibiliza uma API utilizando o FastAPI para gerenciar os endpoints da aplicação. 🚀🔌
- Apache Kafka: Utiliza o Apache Kafka para permitir a comunicação assíncrona e distribuída entre os modulos do projeto, como o crawler, API e Banco de dados. 📡🔗
Para executar este projeto em sua máquina local, siga os passos abaixo:
-
Clone o repositório:
git clone https://github.com/wesleyolvr/shein_crawler.git
-
Crie e Ative um Ambiente Virtual:
- No terminal, navegue até o diretório do seu projeto:
cd /path/to/your/project
- Crie um ambiente virtual:
python -m venv venv
- Ative o ambiente virtual:
- No Windows:
venv\Scripts\activate
- No macOS/Linux:
source venv/bin/activate
- No terminal, navegue até o diretório do seu projeto:
-
Ajuste o arquivo de configuração: Renomeie o arquivo
config_sample.ini
paraconfig.ini
e insira as informações do banco de dados e do Kafka conforme necessário. -
Inicie o Kafka e o Zookeeper: Siga as instruções para iniciar o Apache Kafka e o Apache Zookeeper conforme documentado aqui.
-
Inicie a API FastAPI e o consumidor Kafka:
python start.py
-
Inicie o script do Crawler:
python crawler/shein_crawler.py
Depois de seguir as etapas de instalação, a API estará disponível em http://localhost:8000
e você pode acessar a documentação interativa do Swagger em http://localhost:8000/docs
.
/produtos
: Lista todos os produtos extraídos do site Shein./produtos/{product_id}
: Retorna um produto específico pelo ID.
Se você deseja contribuir com melhorias para este projeto, siga as diretrizes abaixo:
-
Crie uma nova branch:
git checkout -b feature-nova-funcionalidade
-
Faça suas alterações e commit:
git commit -am 'Adiciona nova funcionalidade'
-
Envie para o GitHub:
git push origin feature-nova-funcionalidade
-
Crie um novo Pull Request e aguarde a revisão.
- Substituição do Selenium pelo Scrapy: Estou atualmente trabalhando para substituir o Selenium pelo Scrapy, a fim de aumentar a eficiência da extração de dados e possibilitar uma raspagem de dados escalável com mais facilidade. Isso permitirá a obtenção de uma maior quantidade de dados de forma mais rápida e eficiente.
- Análise de Dados: Implementar funcionalidades para consumir os dados do banco e realizar análises de tendências de preços. 📉📊
- Serviço de Comparação de Preços: Desenvolver um serviço que compara os preços atuais dos produtos com seus históricos para identificar oportunidades de compra. 💰🔍
Este projeto é licenciado sob a MIT License - veja o arquivo LICENSE para mais detalhes. 🚀🤝