python 监控京东霍尼韦尔(Honeywell)N95口罩是否到货,到货邮件提醒
https://item.jd.com/100011293950.html
import requests,json
from email.mime.text import MIMEText
import logging
logging.basicConfig(level = logging.INFO,format = '%(asctime)s - %(name)s - %(levelname)s - %(message)s')
logger = logging.getLogger(__name__)
def SendMail(strs):
msg_from = '********245@163.com'
passward = '*********' # 授权码
msg_to = '**************@qq.com'
subject = 'get_Honeywell'
content = '可能有货了,快来看看:\n%s'%(str(strs))
msg = MIMEText(content)
msg['Subject'] = subject
msg['From'] = msg_from
msg['To'] = msg_to
try:
s = smtplib.SMTP('smtp.163.com', 25)
s.login(msg_from, passward)
s.sendmail(msg_from, msg_to, msg.as_string())
logger.info('发送成功')
except smtplib.SMTPException as e:
logger.error('发送失败' + format(e))
def get_Honeywell():
RequestURLs = ["https://c0.3.cn/stock?skuId=100010233106&area=27_2376_50231_0&venderId=1000084542&buyNum=3&choseSuitSkuIds=&cat=9855,9858,9924&extraParam={%22originid%22:%221%22}&fqsp=0&pdpin=&pduid=728140502&ch=1",
"https://c0.3.cn/stock?skuId=100009443324&area=27_2376_50231_0&venderId=1000084542&buyNum=3&choseSuitSkuIds=&cat=9855,9858,9924&extraParam={%22originid%22:%221%22}&fqsp=0&pdpin=&pduid=728140502&ch=1",
"https://c0.3.cn/stock?skuId=100011293950&area=27_2376_50231_52706&venderId=1000078145&buyNum=1&choseSuitSkuIds=&cat=9192,12190,1517&extraParam={%22originid%22:%221%22}&fqsp=0&pdpin=&pduid=728140502&ch=1"
]
headers = {
'Sec-Fetch-Mode': "no-cors",
'User-Agent': "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36",
}
try:
n = 0
while n < 1:
for i in RequestURLs:
r = json.loads(requests.request("GET", i, headers=headers).text)
url = 'https://item.jd.com/' + str(r['stock']['realSkuId']) + '.html'
if r['stock']['StockStateName'] == '无货':
hwinfo = "商品链接:%s ,到货情况:%s" % (url, r['stock']['StockStateName'])
logger.info(hwinfo)
else:
hwinfo = "商品链接:%s ,到货情况:%s" % (url, r['stock']['StockStateName'])
logger.info(hwinfo)
SendMail(hwinfo)
n += 1
except Exception as e:
logger.error(str(e))
if __name__ == '__main__':
get_Honeywell()
input('Press Enter to exit...')