目前也非常难买到正品,许多地方都售完了。
并且,淘宝上一些新店茅台库存写着非常少,但不发货,不是骗钱就是采集个人信息,茅台酒的销售额超过了300亿元人民币,销量约为3500万箱。而在京东上,即使有到货通知,但往往还没等到通知就被抢购完了。
这时,就轮到我 Python 爬虫出马了!
时刻帮我盯着京东是否到货,到货马上邮件通知!接下来,就让我们一起看 Python 爬虫如何帮你时刻盯着到货通知,并最终自动下单。
第一步:Python 爬虫到货通知
首先,我们先来看几个效果展示:
无货展示
有货展示
代码如下:
''' jd旗舰店检查到货'''import requestsimport time# 有货通知 收件邮箱mail = 'xxxxx@qq.com'# 商品的urlurl = [ '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=34424081673&area=19_1607_3639_0&venderId=656282&buyNum=1&choseSuitSkuIds=&cat=9192,12190,1517&extraParam={%22originid%22:%221%22}&fqsp=0&pdpin=&pduid=1580214678781491106132&ch=1&callback=jQuery7815511', 'https://c0.3.cn/stock?skuId=14567560031&area=6_318_320_44149&venderId=70651&buyNum=1&choseSuitSkuIds=&cat=9847,13533,13534&extraParam={%22originid%22:%221%22}&fqsp=0&pdpin=&pduid=1580535906442142991701&ch=1&callback=jQuery660434', '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', 'https://c0.3.cn/stock?skuId=11300307432&area=2_2824_51916_0&venderId=646174&buyNum=1&choseSuitSkuIds=&cat=9192,12190,1517&extraParam={%22originid%22:%221%22}&fqsp=0&pdpin=&pduid=1580214678781491106132&ch=1&callback=jQuery4188953',]def sendMail(url): import smtplib from email.mime.text import MIMEText # email 用于构建邮件内容 from email.header import Header # 用于构建邮件头 # 发信方的信息:发信邮箱,QQ 邮箱授权码 from_addr = 'xxxxxxxx@qq.com' 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(host=smtp_server) server.connect(smtp_server, 465) # 登录发信邮箱 server.login(from_addr, password) # 发送邮件 server.sendmail(from_addr, to_addr, msg.as_string()) # 关闭服务器 server.quit()flag = 0while (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" } print('第' + str(flag) + '次 ' + time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())) flag += 1 for i in url: # 商品url skuidUrl = 'https://item.jd.com/' + i.split('skuId=')[1].split('&')[0] + '.html' response = session.get(i) # print('有货啦! 有货啦! 有货啦! : ' + skuidUrl) # sendMail(skuidUrl) if (response.text.find('无货') > 0): print('无货 : ' + skuidUrl) else: print('有货啦! 有货啦! 有货啦! : ' + skuidUrl) sendMail(skuidUrl) time.sleep(5) except Exception as e: import traceback print(traceback.format_exc()) print('异常') time.sleep(10)
修改的地方:
主要修改的是以下两个地方,完成后就可以实时监控了。
收发件邮箱修改成自己的,可以阅读这篇 CSDN 博文:《Python 实现自动发送邮件》,https://blog.csdn.net/LeoPhilo/article/details/89074232。
第二个是,要监控的商品 URL。
Google Chrome 浏览器按 F12 打开,点击需要的商品和所在的地区,找到这个 stock 开头的 URL,复制、修改或者添加在下方。
在此提醒一下大家,注意不要把频率调得太高,避免被京东反爬虫。
第二步,如何实现自动下单爬虫?
有了到货之后,又如何实现自动下单呢,并且还能够避免抢购,程序自动一次只买一件?
在完成第一步的基础上,我们进入到第二步,自动下单爬虫。
自动下单所需 Cookie 获取:
- 修改位置
- 获取方式
(1)打开 Google Chrome,登录京东。
(2)按 F12 进入我的订单页面,过滤出 list.action url。
(3)请求下滑找到 cookie 然后复制,在代码里面修改就行。
读者福利:知道你对Python感兴趣,便准备了这套python学习资料
👉[[CSDN大礼包:《python兼职资源&全套学习资料》免费分享]](安全链接,放心点击)
对于0基础小白入门:
如果你是零基础小白,想快速入门Python是可以考虑的。
一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以找到适合自己的学习方案
包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、机器学习等习教程。带你从零基础系统性的学好Python!
零基础Python学习资源介绍
- ① Python所有方向的学习路线图,清楚各个方向要学什么东西
- ② 600多节Python课程视频,涵盖必备基础、爬虫和数据分析
- ③ 100多个Python实战案例,含50个超大型项目详解,学习不再是只会理论
- ④ 20款主流手游迫解 爬虫手游逆行迫解教程包
- ⑤ 爬虫与反爬虫攻防教程包,含15个大型网站迫解
- ⑥ 爬虫APP逆向实战教程包,含45项绝密技术详解
- ⑦ 超300本Python电子好书,从入门到高阶应有尽有
- ⑧ 华为出品独家Python漫画教程,手机也能学习
- ⑨ 历年互联网企业Python面试真题,复习时非常方便
文末有福利领取哦~
👉一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
👉二、Python必备开发工具
👉三、Python视频合集
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
👉 四、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。(文末领读者福利)
👉五、Python练习题
检查学习结果。
👉六、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
👉因篇幅有限,仅展示部分资料,这份完整版的Python全套学习资料已经上传
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!