for i in range(len(resopnse['data'])):
# 匹配查询的名字
name = resopnse['data'][i]['name']
if monitor_name == name:
print('名字匹配成功')
- 名字匹配成功,监控价值,超过指定价值发送邮件提醒
# 得到价值
crt_amount = resopnse['data'][i]['crt_amount']
# 匹配监控的价值
# ! 原网站显示的时候后面少了两个00,这里是测试,未作处理
if int(monitor_price) >= crt_amount:
# 发邮件提醒
# ! 接受邮箱是个列表list,不要写成字符串str
标题 = '你关注的iNFR中分类' + u_id + '旗下的' + monitor_name + '价格达到了' + monitor_price
Send_Email('你的发件邮箱', '邮箱授权码',['你的收件邮箱'], 标题, '内容', 'smtp.qq.com')
发邮件提醒
- 发邮件提醒有以下注意事项:
1.你发邮件的邮箱要开启stmp模式
2.邮箱授权码不是你登录邮箱的密码,而是你后台授权码
3.具体如何设置,这里不做说明,请自行百度
- 发邮件代码
1.my_email 发件邮箱
2.pwd 邮箱授权码
3.send_email 收件邮箱(列表模式)
4.mail_title 邮件标题
5.mail_content 邮件内容
6.smtp_server 邮箱服务器
def Send_Email(my_email, pwd, send_email, mail_title, mail_content, smtp_server):
email = MIMEMultipart()
email['Subject'] = Header(mail_title, 'utf-8')
email['From'] = my_email
email['To'] = ";".join(send_email)
email.attach(MIMEText(mail_content, 'plain', 'utf-8'))
try:
smtp = SMTP_SSL(smtp_server)
# ! 跟服务器打招呼,告诉它我们准备连接,最好加上这行代码
smtp.ehlo(smtp_server)
smtp.login(my_email, pwd)
smtp.sendmail(my_email, send_email, email.as_string())
smtp.quit()
print("发送成功")
except SMTPException:
print("发送失败")
整个代码详情
# -*- coding: utf-8 -*-
# @Author: cxys_dragon
# @Date: 2022-05-11 22:15:17
# @Last Modified by: cxys_dragon
# @Last Modified time: 2022-05-12 23:08:30
from requests import get
from email.header import Header
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from smtplib import SMTP_SSL, SMTPException
# todo 发邮件
def Send_Email(my_email, pwd, send_email, mail_title, mail_content, smtp_server):
email = MIMEMultipart()
email['Subject'] = Header(mail_title, 'utf-8')
email['From'] = my_email
email['To'] = ";".join(send_email)
email.attach(MIMEText(mail_content, 'plain', 'utf-8'))
try:
smtp = SMTP_SSL(smtp_server)
# ! 跟服务器打招呼,告诉它我们准备连接,最好加上这行代码
smtp.ehlo(smtp_server)
smtp.login(my_email, pwd)
smtp.sendmail(my_email, send_email, email.as_string())
smtp.quit()
print("发送成功")
except SMTPException:
print("发送失败")
# todo 监控程序
def Monitor(u_id,monitor_name,monitor_price):
'''
u_id 匹配需要查询的对应ID值
monitor_name 监控NFT的名字
monitor_price 监控NFT的价值
'''
headers = {
'User-Agent': r'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.60 Safari/537.36',
'Cookie': 'Hm_lvt_97ec653ce3458e152c3a8bc9e02fa66d=1652278211; Hm_lpvt_97ec653ce3458e152c3a8bc9e02fa66d=1652278269'
}
category = {
'all' : 'all',
'iBox' : 'c8gb15q2dtei4q721ukg',
'唯一艺术' : 'c8gcana2dtei4q721ur0',
'zTag':'c8uvgr9uk5rrg142ol02',
'优版权':'c98g101uk5ro4vqnqjeg',
'幻藏':'c98gb69uk5ro4vqnqka0',
'Art Meta':'c98gdt9uk5ro4vqnqkgg',
}
url = 'https://xxx.xxx.xxx/xx/tourist/platform/detective/rt/query?platform_id=' + category[u_id]
resopnse = get(url=url,headers=headers).json()
for i in range(len(resopnse['data'])):
# 匹配查询的名字
name = resopnse['data'][i]['name']
if monitor_name == name:
# 得到价值
crt_amount = resopnse['data'][i]['crt_amount']
# 匹配监控的价值
# ! 原网站显示的时候后面少了两个00,这里是测试,未作处理
if int(monitor_price) >= crt_amount:
# 发邮件提醒
# ! 接受邮箱是个列表list,不要写成字符串str
text = '你关注的iNFR中分类' + u_id + '旗下的' + monitor_name + '价格达到了' + monitor_price
Send_Email('你的发件邮箱', '邮箱授权码',['你的收件邮箱'], 标题, '内容', 'smtp.qq.com')
break
Monitor('iBox','仙境','4499900')