O projeto automatiza a obtenção de informações sobre produtos do site Shein.
- Web Scraping Automatizado com Scrapy: Utiliza o framework Scrapy para extrair dados de produtos do site Shein. Os dados são recebidos via Apache Kafka, onde são processados e retornados como JSON para a API. 🌐📦
- Armazenamento em Banco de Dados e Cache Redis: Utiliza um banco de dados SQLite para armazenar os dados extraídos e um cache Redis para armazenar informações sobre a última extração de cada categoria. Os dados são atualizados no banco de dados e no cache Redis somente se houver diferença no preço do produto. 🗃️🔍
- 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. A API recebe os dados dos produtos via Kafka, valida e verifica se o produto está presente no cache Redis antes de atualizar o banco de dados e o cache. 🚀🔌
- Apache Kafka: Utiliza o Apache Kafka para permitir a comunicação assíncrona e distribuída entre os módulos do projeto, como o crawler, a API e o 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-scrapy.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 os arquivos de variaveis de ambiente: Renomeie o arquivo
config_sample.ini
paraconfig.ini
e insira as informações do banco de dados, Redis e do Kafka conforme necessário. -
Cria e inicie os serviços Kafka, Zookeeper e Redis:
docker-compose up -d
-
Inicie script consumidor dos produtos:
python start_consumidor.py
-
Inicie a API FastAPI:
uvicorn api.main:app --reload
-
Inicie o script do Spider:
python shein/run_spider.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.
-
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. 💰🔍
-
Dockerização do Projeto: Utilizar Docker para empacotar e distribuir todo o projeto, garantindo portabilidade, consistência e facilitando a escalabilidade. Isso simplificará a gestão de dependências e garantirá uma implantação mais eficiente. 🐳🚀
Este projeto é licenciado sob a MIT License - veja o arquivo LICENSE para mais detalhes. 🚀🤝