Este projeto faz o monitoramento constante, de 15 em 15 minutos, do preço de um ou mais produtos do Aliexpress. Caso o preço de algum dos produtos cadastrados tenha diminuído, é enviado um Email HTML, que faz uso recursos de formatação e marcação semântica em email que não estão disponíveis com texto simples. O template do email é estilizado com uso do framework Bootstrap, através da ferramenta Bootstrap Email (https://github.com/bootstrap-email/bootstrap-email). O monitoramento dos preços é feito sempre, até que todos os produtos tenham seu alerta de preço enviado (após o preço abaixar) ou até que o usuário encerre o processo.
Este projeto foi desenvolvido em Python, que dentre outras bibliotecas, possui a biblioteca Beautiful Soup (https://github.com/wention/BeautifulSoup4) que é utilizada para extrair dados de arquivos HTML e XML. Ele fornece formas idiomáticas de navegar, pesquisar e modificar a árvore de análise. Para envio de Email HTML é utilizada a bibliteca smtplib (https://docs.python.org/3/library/smtplib.html) e as subclasses MIMEMultiparte e MIMEText (https://docs.python.org/3/library/email.mime.html).
Antes de executar o projeto, configure as variáveis do arquivo credenciais.py, sendo elas:
HOST = "*******" # Nome do servidor do seu plano de hospedagem
PORT = 587 # A porta SSL ou TTL
MY_ADDRESS = "**********" # o e-mail remetente para enviar mensagens
PASSWORD = "*************" # a senha do e-mail remetente (MY_ADDRESS)
Nota: A variável
PORT
requere a porta de seu servidor SMTP, que normalmente é 587 para protocolo TTL e 465 para protocolo SSL.
Também altere a variável email_relatorio
que se encontra na linha 122 do arquivo main.py. Esta variável deve ter o Email para qual deseja que o alerta Email HTML seja enviado.
email_relatorio = "*************************"
- Acesse o site do produto desejado para monitoração de preço no Aliexpress;
- No URL do produto, extraia o código do produto, onde este está localizado entre a barras item e a extensão da página (.html). Exemplo: https://pt.aliexpress.com/item/1005002611857804.html neste exemplo, o código do produto seria 1005002611857804;
Cadastre os produtos que deseja receber alertas na variável data
. Cada produto tem três "atributos":
id
: um número único que identifique o produto (normalmente se inicia a contagem em 0);codigo_produto
: o código do produto no Aliexpress. Consulte as instruções abaixo para ver como obter;preco_bom
: a meta de preço à qual o produto deva ser inferior para que o alerta de preço seja enviado para o usuário;
No exemplo abaixo, está cadastrado dois produtos. O produto de código 1005002611857804 possui a meta de preço R$ 48,10 e o id de identificação 0. já o produto de código 1005004957723357 possui a meta de preço R$ 651,00 e o id de identificação 1:
data = [
{
'id': 0,
'codigo_produto': '1005002611857804',
'preco_bom' : 48.10
},
{
'id': 1,
'codigo_produto': '1005004957723357',
'preco_bom': 621.00
}
]
Email aberto no Gmail:
Console aberto no Pycharm: