一年一度的猫狗大战如期而至,小伙伴们战果如何,是不是已经做好下半个月吃土的准备了?不过比吃土更伤心的恐怕是想要的东西在眼前却抢不到的痛苦吧,广告里不是都说了“错过一次,再等一年”么 。作为一个码农怎么可能让这种事情发生呢,虽然网上有很多秒杀助手之类的插件或小程序,但是毕竟要登录自己的网购账号,还是不太放心的 。今天咱们就来用前几天介绍的Pyppeteer框架自己动手写个抢购秒杀小工具,没有看过我前面介绍的小伙伴可以翻翻我的主页先去了解下 。下面咱们就直奔主题,自己写个秒杀小工具 。当然直接想要小工具的小伙伴们可以在最下面找到 。
既然是要抢购秒杀,那我们先来回顾下我们人工是怎么个操作流程的 。首先我们得打开浏览器,再打开我们事先收藏好的商品秒杀链接页面,然后静静地坐在电脑屏幕前,等待秒杀开启的那一刻,然后疯狂点击加入购物车,然后“该商品已售罄!” 。啊~呸~ 。“宝贝已成功加入购物车,请快去付款吧!”……大体就是这么个流程了 。接下来我们就按照这个逻辑一步步的用代码的方式实现它吧 。
正式开始前请小伙伴们按我之前文章中介绍的方法,准备好Pyppeteer库,构建好基础运行环境(三分钟的事)
回到正题按照上面我们分析的秒杀流程,第一步:打开浏览器
第二步:打开秒杀页面,这里我们就以华为P50这款热门机型的商品页为例,原理都是一样的,小伙伴们可以用自己心仪的商品进行试验 。
这里逐行说明下,咱们在这个无头浏览器里打开一个新的tab页,然后设置好页面大小、浏览器的UserAgent,这些大家可设置成自己喜好的参数即可 。下面这行就要注意了,因为猫家狗家都不希望是用程序秒它的东西嘛,所以都会有各种检测的,其中最常见的就是webdriver的检测,所以我们就需要在页面加载的时候给这个页面设置下 。最下面就是打开页面了,为了保证页面加载完成才执行下面的操作所以需要将打开页面和等待做成一个“事务” 。
【抢购神器哪个比较实用【抢购代码怎么写】】 第三步,找到加入购物车按钮
页面加载完成后,通过xpath路径找到加入购物车的按钮,因为不同页面结构是不一样的,所以需要小伙伴们自己去找自己页面的路径,方法如下:打开电脑浏览器,打开商品页面,按下F12进入开发者模式,然后按图中①的元素选择按钮,这时鼠标就变成点选状态,选中加入购物车按钮②,右边就会出现高亮的代码块,这就是加入购物车的按键代码③ 。根据上下文的路径④,最后就能得到完整的xpath路径了
第四步:判断加入购物车状态,可以点击时再点击
因为在秒杀还没开始前按钮是无法点击的,这时需要做个简单判断,当按钮是不可点击状态时就退出,当秒杀开始了可以点击后再点击 。同样,当可以点击时也需要做个“事务”点击事件执行完成后再执行下面动作 。
到这里其实秒杀小工具的核心功能咱们已经都实现好了是不是很简单 。但是实际上因为秒杀肯定是定点开启的,所以我们还需要做一个简单的定时任务去执行它,也是几行代码搞定 。
这里还需要说明下,因为篇幅原因代码内没有集成自动登录功能,关于这个问题请大家关注我,后面会专门开一篇文章进行详细的介绍 。因为Pyppeteer是支持cookie保持的,所以这里大家可以在第二部分代码块中加上暂停界面,第一次运行的时候手动去登录下就好 。
本文内容仅做技术学习和讨论,如大家在学习中有什么问题,可以留言或私信我,大家一起学习交流 。
推荐阅读
- 床头朝哪个方向最好对身体财运都好 床头朝哪个方向好旺财
- 女生铁路哪个专业最吃香 铁路哪个专业最吃香
- 济宁代缴社保的公司是合法的吗 济宁代缴社保公司哪个可靠
- 60mg和012g哪个减肥效果好 奥利司他吃60mg还是120mg
- 凤凰古城和云南哪个好玩? 凤凰古城不是云南的吗?
- 请问车牌号“江”字开头的是哪个地方? 没有江字开头的车牌号的
- 我就是想知道河北廊坊嘉都小区属于哪个街道办事处,为什么我查不到
- 芜湖县属于芜湖市哪个区 芜湖县属于哪个市的
- 凯越摩托车是哪个厂生产的 凯越摩托车是哪一个厂
- 怪物猎人世界冰原买哪个包 怪物猎人世界和冰原买哪个