https://github.com/thejoaomoura/buscape_api
API para webscraping do Buscapé
https://github.com/thejoaomoura/buscape_api
axios buscape-api cheerio cors nodejs vercel webscraping
Last synced: about 2 months ago
JSON representation
API para webscraping do Buscapé
- Host: GitHub
- URL: https://github.com/thejoaomoura/buscape_api
- Owner: thejoaomoura
- Created: 2024-11-20T02:56:03.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2025-10-17T19:29:30.000Z (8 months ago)
- Last Synced: 2025-10-18T21:25:01.457Z (8 months ago)
- Topics: axios, buscape-api, cheerio, cors, nodejs, vercel, webscraping
- Language: HTML
- Homepage: https://buscape-search-api.vercel.app
- Size: 74.2 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Buscapé API Webscraping
API para realizar webscraping do site Buscapé.
## Instalação
1. Clone o repositório
2. Instale as dependências:
```bash
npm install
```
3. Crie um arquivo .env baseado no exemplo e configure as variáveis de ambiente
## Executando o projeto
Para desenvolvimento:
```bash
npm run dev
```
Para produção:
```bash
npm start
```
## Endpoints
### 1. GET /api/search
Busca produtos no Buscapé
**Parâmetros:**
- q (obrigatório): termo de busca
**Exemplo:**
```
GET /api/search?q=notebook
```
**Resposta:**
```json
{
"query": "notebook",
"total": 30,
"products": [
{
"name": "Nome do Produto",
"price": "R$ 1.999,00",
"rating": "4.5 (100)",
"link": "https://www.buscape.com.br/produto",
"tags": ["Indica", "Oferta"],
"image": "url-da-imagem",
"installment": "até 10x de R$ 199,90"
}
]
}
```
### 2. GET /api/product
Obtém detalhes específicos de um produto
**Parâmetros:**
- url (obrigatório): URL completa do produto no Buscapé
**Exemplo:**
```
GET /api/product?url=https://www.buscape.com.br/produto
```
**Resposta:**
```json
{
"name": "Nome do Produto",
"price": "R$ 1.999,00",
"description": "Descrição do produto",
"specifications": {
"Marca": "Valor",
"Modelo": "Valor"
},
"merchants": [
{
"name": "Nome da Loja",
"price": "R$ 1.999,00",
"rating": "4.5",
"shipping": "Frete Grátis"
}
]
}
```
### 3. POST /api/monitor/check/:id
Verifica manualmente o preço de um produto monitorado
**Parâmetros:**
- id (obrigatório): ID do monitor
**Exemplo:**
```
POST /api/monitor/check/abc123
```
**Resposta:**
```json
{
"success": true,
"result": {
"checked": true,
"notified": false
}
}
```
### 4. GET /api/monitor/unsubscribe/:id
Cancela o monitoramento de um produto (usado no e-mail)
## Sistema de Monitoramento de Preços
### Funcionalidades
- ✅ Monitoramento automático de preços a cada 6 horas
- ✅ Notificações por e-mail quando o preço alvo é atingido
- ✅ Interface para gerenciar produtos monitorados
- ✅ Verificação manual de preços
- ✅ Integração com Firebase Firestore
- ✅ E-mails via Resend API
### Configuração do Monitoramento
1. **Firebase Setup:**
- Crie um projeto no [Firebase Console](https://console.firebase.google.com/)
- Ative o Firestore Database
- Gere uma chave de conta de serviço (Service Account)
- Configure as variáveis de ambiente no arquivo `.env`
2. **Resend Setup:**
- Crie uma conta em [Resend](https://resend.com/)
- Gere uma API Key
- Configure a variável `RESEND_API_KEY` no `.env`
3. **Variáveis de Ambiente:**
Copie o arquivo `env.example` para `.env` e preencha:
```
FIREBASE_PROJECT_ID=seu-project-id
FIREBASE_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n"
FIREBASE_CLIENT_EMAIL=firebase-adminsdk@...
RESEND_API_KEY=re_sua_chave
EMAIL_FROM=BuscapéAPI
```
### Endpoints de Monitoramento
#### POST /api/monitor
Adiciona um produto ao monitoramento
**Body:**
```json
{
"userEmail": "usuario@email.com",
"productName": "Nome do Produto",
"productUrl": "https://www.buscape.com.br/...",
"currentPrice": 1500.00,
"targetPrice": 1300.00,
"productImage": "url-da-imagem"
}
```
#### GET /api/monitor?email=usuario@email.com
Lista todos os produtos monitorados por um e-mail
#### PUT /api/monitor/:id
Atualiza o preço alvo de um monitor
**Body:**
```json
{
"targetPrice": 1200.00
}
```
#### DELETE /api/monitor/:id
Remove um monitoramento
## Tecnologias utilizadas
### Backend
- Node.js
- Express
- Axios
- Cheerio
- CORS
- Firebase Admin SDK
- Resend
- Node-Cron
### Frontend
- Tailwind CSS
- HeroUI V2
- Alpine.js
- Lucide Icons