No cenário atual de rápido crescimento do mercado de delivery, empresas de restauração enfrentam o desafio crucial de gerenciar dados de pedidos de forma eficiente. A ferramenta waimai-crawler foi desenvolvida para atender à necessidade de coleta automatizada de dados de pedidos de plataformas populares como Meituan e Ele.me, auxiliando restaurantes na gestão e análise sistemática dessas informações.
Valor Central e Cenários de Aplicação
Este coletor de pedidos de delivery é voltado principalmente para redes de restaurantes com múltiplas unidades e para estabelecimentos que necessitam de análise aprofundada de seus dados de pedidos. Ao capturar dados automaticamente em horários programados, a ferramenta unifica as informações dispersas em diferentes plataformas, fornecendo a base de dados necessária para estatísticas financeiras, análise de vendas e tomada de decisões estratégicas.
Principais Funcionalidades:
- Integração Multicanal: Suporta a coleta de dados de pedidos das plataformas Meituan, Ele.me e Baidu Takeaway (embora o Baidu Takeaway tenha descontinuado suas operações).
- Agendamento Inteligente: Permite configurar tarefas de execução automática diária, eliminando a necessidade de intervenção manual.
- Envio Automatizado por E-mail: Gera automaticamente arquivos Excel com os dados coletados e os envia para destinatários especificados.
- Arquitetura Leve: Desenvolvida em JavaScript, a ferramenta é de fácil implantação e consome poucos recursos do sistema.
Implantação Rápida e Configuração do Ambiente
Preparação do Ambiente e Obtenção do Projeto
Certifique-se de ter o ambiente Node.js instalado (versão 14 ou superior é recomendada). Em seguida, clone o repositório do projeto:
git clone https://gitcode.com/gh_mirrors/wa/waimai-crawler
cd waimai-crawler
Instalação de Dependências e Inicialização do Serviço
No diretório do projeto, execute o comando para instalar as dependências:
npm install
Após a instalação, você pode iniciar o serviço de duas maneiras:
- Ambiente de Desenvolvimento: Execute
node index.jsdiretamente. - Ambiente de Produção: Utilize o script de implantação fornecido:
sh pro.sh.
Configuração Detalhada
Configurações Principais do Arquivo
A configuração do projeto é gerenciada principalmente pelo arquivo config/production.json. Abaixo está um modelo completo de configuração:
{
"log": {
"level": "DEBUG"
},
"mail": {
"from": "seu_email@empresa.com",
"mailTo": "destinatario@empresa.com",
"host": "smtp.seu_provedor.com",
"port": 587,
"secure": true,
"user": "seu_email@empresa.com",
"pass": "sua_senha_de_email"
},
"imgCode": {
"key": "SUA_CHAVE_API_RECONHECIMENTO_CAPTCHA"
},
"account": [
{
"name": "Nome da Loja Meituan",
"username": "Usuario Meituan",
"password": "Senha Meituan",
"type": "meituan"
},
{
"name": "Nome da Loja Ele.me",
"username": "Usuario Ele.me",
"password": "Senha Ele.me",
"type": "eleme"
}
]
}
Detalhes da Configuração do Serviço de E-mail
A funcionalidade de e-mail é essencial para o envio automático dos dados. Configure corretamente os parâmetros do serviço SMTP:
- Remetente: E-mail que será usado para enviar os relatórios.
- Destinatário: E-mail(s) que receberão os dados dos pedidos.
- Servidor SMTP: Endereço do servidor SMTP do seu provedor de e-mail.
- Segurança e Porta: Configure a porta e a opção de conexão segura (SSL/TLS) conforme as exigências do seu provedor.
Configuração do Reconhecimento de Captcha
Como as plataformas Meituan e Baidu Takeaway exigem login com captcha, o projeto integra um serviço de reconhecimento de imagens de captcha. É necessário registrar-se em um serviço de reconhecimento de captcha (como o da Juhe Data) e obter uma chave de API, que deve ser inserida no campo imgCode.key do arquivo de configuração.
Arquitetura Técnica e Módulos
Módulo Central de Agendamento de Tarefas
A lógica principal de agendamento está localizada no arquivo lib/fetch_task.js. Este módulo coordena as tarefas de coleta de dados de cada plataforma e gerencia as regras de execução programada.
Design da Camada de Adaptação de Plataformas
- Plataforma Meituan: O arquivo
lib/meituan_task.jsé responsável pela coleta de dados de pedidos do Meituan. - Plataforma Ele.me: O arquivo
lib/eleme_task.jsimplementa a lógica para coletar pedidos do Ele.me. - Plataforma Baidu Takeaway: O arquivo
lib/baidu_task.js(observação: Baidu Takeaway descontinuou o serviço) fornece o suporte para esta plataforma.
Módulos Auxiliares
- Gerenciamento de Logs:
lib/logger.jsoferece funcionalidades unificadas para registro de logs. - Serviço de E-mail:
lib/mail.jsgerencia o envio de dados de pedidos por e-mail. - Funções Utilitárias:
lib/util.jscontém métodos auxiliares genéricos e a lógica de processamento de captchas.
Fluxo de Uso e Melhores Práticas
Etapas de Configuração Inicial
- Copie o modelo de arquivo de configuração e ajuste-o conforme suas necessidades.
- Insira as credenciais de acesso de cada plataforma de delivery.
- Configure os parâmetros SMTP para o serviço de e-mail.
- Adicione a chave de API para o reconhecimento de captchas.
Monitoramento e Manutenção em Operação
Durante a execução, utilize o sistema de logs para monitorar o status da coleta e identificar possíveis erros. Recomenda-se verificar periodicamente:
- Taxa de sucesso do reconhecimento de captchas.
- Status de login nas diferentes plataformas.
- Registros de envio de e-mails.
- Integridade dos dados de pedidos coletados.
Perguntas Frequentes e Soluções
Problemas de Configuração
P: O envio de e-mails falha. O que fazer?
R: Verifique se as configurações SMTP estão corretas, incluindo host, porta, configuração de segurança e credenciais (e-mail e senha).
P: A precisão do reconhecimento de captcha é baixa. Como resolver?
R: Considere trocar o serviço de reconhecimento de captcha ou otimizar a lógica de reconhecimento no arquivo lib/util.js.
Problemas de Adaptação de Plataforma
P: Não consigo coletar dados de uma plataforma específica. Qual o motivo?
R: Verifique se o módulo de tarefa correspondente (ex: lib/meituan_task.js ou lib/eleme_task.js) precisa de atualizações. As plataformas de delivery frequentemente alteram suas interfaces, o que pode exigir ajustes na lógica do coletor.
Sugestões de Extensão e Personalização
Para usuários com necessidades específicas, considere as seguintes extensões:
- Otimização de Armazenamento de Dados: Integre um banco de dados para substituir o armazenamento em arquivos.
- Customização de Relatórios: Desenvolva formatos de relatórios personalizados de acordo com as demandas do negócio.
- Gerenciamento de Múltiplas Lojas: Aprimore a funcionalidade para agregar e analisar dados de várias lojas de redes de restaurantes.
Observações e Normas de Uso
Este projeto é licenciado sob a licença MIT, destinado principalmente para fins de aprendizado e intercâmbio técnico. Ao utilizá-lo, observe:
- Respeite os termos de uso e acordos de serviço de cada plataforma de delivery.
- Controle a frequência de coleta de dados para não sobrecarregar os servidores das plataformas.
- Colete apenas os dados de pedidos de suas próprias lojas, protegendo a privacidade dos usuários.
- Em ambientes de produção, prefira o uso das APIs oficiais fornecidas pelas plataformas, quando disponíveis.
O uso adequado desta ferramenta de coleta automatizada de pedidos de delivery pode aumentar significativamente a eficiência na gestão de dados para empresas de restauração, oferecendo suporte robusto para operações detalhadas e análises baseadas em dados.