责编 | 唐小引
头图 | 下载自东方 IC
出品 | CSDN 博客
立时上班了,回来的路上,上班地铁上都是非常急需口罩的。
目前也非常难买到正品、发货快的口罩,许多药店都售完了。
并且,淘宝上一些新店口罩库存写着非常多,但不发货,不是骗钱便是采集个人信息,销量都非常高几 W 几十 W 的销量。而在京东上,纵然有到货关照,但每每还没等到关照就被抢购完了。
这时,就轮到我 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 smtplibfrom 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.quitflag = 0while (1):try:session = requests.Sessionsession.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 += 1for i in url:# 商品urlskuidUrl = '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 tracebackprint(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 然后复制,在代码里面修正就行。
末了,预祝大家都能抢到口罩,身体康健开工!
更多细节,可阅读 CSDN 博主「菜园子哇」系列文章:
买不到口罩,京东到货关照不靠谱,python爬虫帮你时候盯着
https://blog.csdn.net/cyz52/article/details/104114438
京东口罩爬虫,到货关照爬虫,自动下单爬虫、python爬虫第二篇
https://blog.csdn.net/cyz52/article/details/104177981
京东口罩爬虫、利用教程、第三篇
https://blog.csdn.net/cyz52/article/details/104239558