Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说python 抢_python swap,希望能够帮助你!!!。
这是我参与2022首次更文挑战的第22天,活动详情查看:2022首次更文挑战
大家好,我是老表~
最近几天冰墩墩超级火,火到什么程度呢?朋友圈天天都是冰墩墩可爱照片,公众号都是教编程画冰墩墩的,视频号都是冬奥视频,到处冰墩墩,最直接的体现还得数:根本抢不到冰墩墩周边玩偶。
上Github搜索:冰墩墩,各式各样教你画冰墩墩的源码。
个人做喜欢的还是明佬在群内分享的3d版本,简单明了、可爱高端,想要源码和运行方法的,可以在评论区领取,顺便点个赞呐~
不过,画的再好也比不过真实的,所以,本文将给大家分享另一个开源项目:淘宝抢购脚本,项目作者Charles
。
项目代码地址:github.com/CharlesPika…
如果无法正常访问github,可以在本文评论区获取源码云盘下载地址。
本文主要手把手教大家如何把这个脚本跑起来~感谢开源本项目的作者Charles
,这里也说下,这个作者开源的库DecryptLogin
超级优秀,可以用来模拟登录一些常用的网站,之后我们就可以方便的利用代码实现自动化操作、爬虫,或者像今天要分享的抢购脚本(下回再给大家分享如何使用~)。
首先需要你的电脑安装好了Python环境,并且安装好了Python开发工具。
如果你还没有安装,可以参考以下文章:
如果仅用Python来处理数据、爬虫、数据分析或者自动化脚本、机器学习等,建议使用Python基础环境+jupyter即可,安装使用参考Windows/Mac 安装、使用Python环境+jupyter notebook
我本地用的Python 3.10.0
,然后使用pipenv
管理虚拟环境,关于pipenv
的使用大家可以看:我用Pipenv来管理项目环境,大写的爽。
打开终端/CMD后,按下面指令,一行一行执行:
/Users/xks/Desktop/Project/crawler
,创建一个新项目目录bdd_tb
,然后进入bdd项目目录,新建一个.venv
文件夹,后面存放虚拟环境。cd /Users/xks/Desktop/Project/crawler && mkdir bdd_tb
cd bdd_tb && mkdir .venv
.venv
文件夹中,创建好后,建议修改下Pipfile
中的pip下载源,具体操作看Pipenv管理项目虚拟环境教程。pipenv install
pipenv shell
pipenv install pyttsx3 DecryptLogin requests prettytable
注意啦,这个终端/CMD先不要关,下载好代码后继续在这里运行代码。
可以在本文评论区获取源码云盘下载地址,注意,将下载好的源码文件放入到项目文件夹bdd_tb
中。
bdd_tb
├── .venv # 虚拟环境存放目录
├── Pipfile # 虚拟环境配置文件
├── Pipfile.lock # 虚拟环境配置文件
├── bdd_tb.py # 项目代码文件
└── cookie_cache.pkl # 运行项目后,会先要求扫码登录淘宝,登录后会自动生成
整个代码主要分为3部分(不包括前面导包部分):启动命令行参数解析、淘宝抢购脚本、运行。
我们可以看到,作者主要提供了两个参数interval
(抢购商品时查询商品是否可以购买的时间间隔),key
(Server酱的key,一种微信消息提醒服务)。
其中interval
是项目运行时必须指定的参数,理论上interval
值越小越好,但是太小,单位时间内请求次数过多,也有被封的风险,所以最好的方法是,等到预售开始前1分钟(或者半分钟)去启动程序,interval
设置到一个自己觉得ok的值,注意单位是秒。
作者全部写在TaobaoSnap
类中,主要包含了整个抢购流程和逻辑实现,包括:登录、选择抢购商品、抢购等功能实现。
必要条件: 运行项目前,你需要将想抢购的商品加入到自己的购物车中(购物车中不要有太多商品)。
打开终端/CMD,进入项目目录,然后进入虚拟环境。
cd /Users/xks/Desktop/Project/crawler/bdd_tb
pipenv shell
在虚拟环境下,输入下面代码运行项目,我指定的interval
为2s(我大概是预售前20s左右启动的程序):
python bdd_tb.py --interval 2
启动成功后,会弹出一个二维码,利用手机淘宝扫码登录即可,登录成功后,会在终端/CMD中打印出你的购物车商品名称列表,输入你要抢购商品对应的id即可开启抢购,如下图所示。
抢购成功后,会输入内容提示,作者还设置了电脑语音提示,非常贴心了~
看了上面的运行截图,你可能会问我:你抢到冰墩墩了吗?没有。
确实运行输出和语音都有提示我:抢购成功,已提交订单;但是我前往淘宝的时候,代付款中却没有。
代码应该没问题(测试过其他商品),感觉是官方设置的:订单为付款减库存,下单不占库存
引起的,我打开淘宝准备付款的时候,已经有2000个人在我之前付款了,所以没有库存 自然也就不会出现在待付款中了。
目前比较好的方法就是:在开启抢购的同时自己打开待付款,不停刷新,代码下单后,可以及时人工进行付款。或者后面研究下,能不能加个自动付款的~
欢迎大家在评论区交流自己的想法,码字不易,欢迎点赞 在看 转发 留言支持。
再次感谢作者开源本项目,本项目仅供Python爱好者学习使用, 若作者发现该项目以任何不正当方式被使用, 将立即删除该项目。
坚持 and 努力 : 终有所获。
那么下期见,我是爱猫爱技术,更爱思思的老表⁽⁽ଘ( ˙꒳˙ )ଓ⁾⁾