买不到口罩,京东到货通知不靠谱。(还没 等到通知就被抢购完了)
这就轮到我python小爬虫出马了
时刻帮我盯着京东是否到货
到货马上邮件通知你
代码
'''
jd旗舰店检查到货
'''
import requests
import time
#有货通知 收件邮箱
mail = '[email protected]'
#商品的url
url = [
'https://c0.3.cn/stock?skuId=100011293950&area=19_1607_4773_0&venderId=1000078145&buyNum=1&choseSuitSkuIds=&cat=9192,12190,1517&extraParam={%22originid%22:%221%22}&fqsp=0&pdpin=&pduid=1580214678781491106132&ch=1&callback=jQuery4173314',
# 'https://c0.3.cn/stock?skuId=100006248245&area=4_126_13541_0&venderId=1000078145&buyNum=1&choseSuitSkuIds=&cat=9192,12190,1517&extraParam={%22originid%22:%221%22}&fqsp=0&pdpin=&pduid=15631231857651045904648&ch=1&callback=jQuery7958024',
'https://c0.3.cn/stock?skuId=100011293952&area=19_1607_4773_0&venderId=1000078145&buyNum=1&choseSuitSkuIds=&cat=9192,12190,1517&extraParam={%22originid%22:%221%22}&fqsp=0&pdpin=&pduid=1580214678781491106132&ch=1&callback=jQuery5497502']
def sendMail(url):
import smtplib
from email.mime.text import MIMEText
# email 用于构建邮件内容
from email.header import Header
# 用于构建邮件头
# 发信方的信息:发信邮箱,QQ 邮箱授权码
from_addr = '[email protected]'
password = 'alpsneahzhawbfgj'
# 收信方邮箱
to_addr = mail
# 发信服务器
smtp_server = 'smtp.qq.com'
# 邮箱正文内容,第一个参数为内容,第二个参数为格式(plain 为纯文本),第三个参数为编码
msg = MIMEText(url + ' 有口罩啦', 'plain', 'utf-8')
# 邮件头信息
msg['From'] = Header(from_addr)
msg['To'] = Header(to_addr)
msg['Subject'] = Header('有口罩啦')
# 开启发信服务,这里使用的是加密传输
server = smtplib.SMTP_SSL()
server.connect(smtp_server, 465)
# 登录发信邮箱
server.login(from_addr, password)
# 发送邮件
server.sendmail(from_addr, to_addr, msg.as_string())
# 关闭服务器
server.quit()
while (1):
try:
session = requests.Session()
session.headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/531.36",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3",
"Connection": "keep-alive"
}
for i in url:
#商品url
skuidUrl = 'https://item.jd.com/'+i.split('skuId=')[1].split('&')[0]+'.html'
response = session.get(i)
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
if (response.text.find('无货') > 0):
print('无货 : ' + skuidUrl)
else:
print('有货啦! 有货啦! 有货啦! : ' + skuidUrl)
sendMail(skuidUrl)
time.sleep(10)
except Exception as e:
print('异常')
time.sleep(10)
修改的地方
主要修改的是这两块地方 就可以实时去监控了。
收件邮箱修改成自己的
发件邮箱是我自己的 需要修改可以看这个
https://blog.csdn.net/LeoPhilo/article/details/89074232
第二个要监控的商品url
谷歌浏览器按F12 打开
点击需要的商品 和所在的地区
找到这个stock 开头的url
复制 修改 就行了
多个商品 在后面继续添加