6.18还要订闹钟拼手速?那是因为你还没有一个程序员男朋友

都说程序员不懂爱情,程序员注孤生?

瞎说!程序员最懂浪漫了好吗!拥有一个程序员男友,他将用最高级最前沿的手段给你带来各种小惊喜。

不信?来看看下面两则故事。

1.帮女朋友定时抢购

一个朋友最近跟我诉苦:女朋友沉迷淘宝抢购无法自拔,大晚上不睡觉都在定时抢购,真是败家。

v2 4b7a262bdfe3db12ecd46decd00b5379 1440w

都是好朋友肯定要帮忙,不就是定时抢购,定时清空购物车嘛,这就安排。

爬取目标

网站:淘宝

v2 aa8c8af19b36e24ddcb908ab787d3999 1440w

工具使用

开发工具:pycharm

开发环境:python3.7, Windows10

使用工具包:selenuim

需求分析

我们的目标是秒杀淘宝的订单,这里面有几个关键点,首先需要登录淘宝,其次你需要准备好订单,最后要在指定时间快速提交订单。

项目思路解析

selenium安装配置

selenium是Python自动化测试的工具库,需要配置一些环境驱动 selenium安装

pip install selenium

Selenium安装好之后,并不能直接使用,它需要与浏览器进行对接。这里拿Chrome浏览器为例。若想使用Selenium成功调用Chrome浏览器完成相应的操作,需要通过ChromeDriver来驱动。

v2 e2658be4e6c1a7006b0ba72af1824b56 1440w

下载完成之后,解压,将其放置在Python安装路径下python文件夹中即可

v2 a0ccb54211c1b5e8d43794166c709e6d 1440w

项目解析

尝试通过selenium打开淘宝首页,检验是否安装成功

v2 75a8c113cfd08f68bcb0230ff7d78804 1440w

通过xpath定位选取到登录标签,抢购脚本需要先知道你购买的东西是什么

v2 5d60e6cd16532819fd6727d4d2319008 1440w

登录的方式可自行选择(可账户密码登录,也可扫码登录,在这里用的扫码登录)

登录成功后点击购物车,选取你需要的商品数据(可全选,可自己手动勾选)

v2 5ff0688490105fd06cf74235fc627016 1440w

再点击结算按钮

v2 da5c6e414918a18332fb613a87af5ccd 1440w

设定一个结算时间,你需要下单的时间

v2 801a54cf19b621e9829b77853aa15a9e 1440w

等待时间的到来 点击提交订单按钮

v2 c7ac31e5139ab083a55912317a4eea49 1440w

简易源码分享

v2 5c26676675c9aa6485cf42607ccb50d1 1440w

2.每晚哄女友睡觉

事情是这样的:昨天晚上,女朋友让我十二点催她睡觉

不过,可是我实在太困了,熬不下去……

但,女朋友的命令,我是不敢违抗的……

但是睡觉也不能缺!

这时候我们该怎么办呢?是时候让Python登场了!

Python登场

这次我们来做一个自动发送微信的程序,在深夜十二点的时候给女朋友发去消息,也算是尽了一个男朋友的义务了。

安装和导入

我们需要两个模块:apscheduler,pyautogui

快捷键 Windows+r 打开运行控制框,输入 cmd,进入命令行,输入:

v2 de26d84a1937c31ff2526abbb8dd0fe8 1440w

导入:

v2 6e6b836fd27b4849cfea17a068a93d86 1440w

pyautogui

首先我们来实现自动发送消息

pyautogui 是一个非常强大的库,可以操作鼠标和键盘。我们将用它来完成自动操作电脑。

先来做一些基本设置:

v2 9579f9d20d4a62fc03c8bae327059b05 1440w

然后我们登录某信,最小化。

接下来我们把鼠标放到微信的任务栏图标上,运行以下语句,获取此时光标的坐标,返回一个Point对象:

v2 891915611c611eebe43012761dfc33be 1440w

打开女朋友的回话窗口,将鼠标放在输入框上,同样获取光标坐标,为了将焦点锁定到输入框以方便待会的输入。

v2 7de9d991fc9affd62bf1790512bc7334 1440w
v2 ba94d03645cb1b8272208e3bdce574d4 1440w

接下来,控制程序依次点击这两个点:

v2 c832fe0cdb78f9db75ac33803f2fc4ca 1440w

打开某信并锁定焦点后,我们开始输入文本。

输入文本可以有两种方式:

pyautogui.typewrite([‘o’, ‘n’, ‘e’, ‘enter’])

在方法中传入一个列表,里面每一元素都是单个字母或特殊按键

pyautogui.typewrite(‘You can type multiple letters in this way’)

传入字符串,但不能同时打印字母和特殊按键。

这两种方式都不能直接输入中文,所以只能依靠你的输入法来输入中文了。

v2 fded44b0221eb0e90c88ad9966e8288c 1440w

为了使我们的操作更加(人模狗样)像人的操作,我来加上移动鼠标的代码:

v2 2a3d7bad7e60747eae90ede21df80329 1440w

看看效果:

动图封面

当然,若是你要输入的内容实在很多,又嫌麻烦,可以通过复制粘贴来实现:

v2 c573374a21c2e680bdea4d4308540a8b 1440w
动图封面

这样,我们便完成了自动发送微信消息的功能了。

apscheduler

APScheduler 是一个Python库,可实现延迟调度要执行Python代码的功能,可以只执行一次,也可以定期执行。可以随时添加新任务或删除旧任务。能够十分方便地进行定时任务。

v2 16ed598cf3c1e8c21e249a7c089456bf 1440w

add_job 方法在这里传了 3 个参数,第一个为到时间后要执行的函数,第二个为触发器的类型。这里选用的是 date 触发器,特定的时间点触发,作业任务只会执行一次。第三个参数 run_date 就是执行的时间。在这前我已经把自动发送消息的代码封装为了 main 函数,只需到时后调用即可。

部分代码

v2 7dd14579e8f7525d69b13f2c5b7a7fb1 1440w

完成啦!现在可以去睡觉了。

结果

动图封面

第二天早上起床,我被我妈妈骂了一顿,问我为什么午夜12点的时候电脑还亮着,而且还在自己发微信!

不过,好在女朋友没丢,我成功完成了女朋友的任务!

看完了上述两则故事,618你还要订闹钟拼手速吗?程序员男朋友可太香了。要不要考虑成为同款男友,或者,把自己变成同款?

如果你也对编程感兴趣,喜欢通过编程发现生活中的各种乐趣。不妨读一个在线海外硕士,帮你高效提升自己,用知识改变生活。

伊利诺伊理工大学(简称IIT)和北亚利桑那大学(简称NAU)都开设了计算机硕士项目。

如果你拥有了美国理工百年强校硕士/美国百年综合性公立名校计算机硕士的身份,不仅能帮你解决双十一、618熬夜抢订单这种生活问题,更能让你在职场中熠熠生辉,比别人多一份选择、多一丝希望、多一个机会!

期待看到你成为编程大牛的样子!

本文投稿后由彼岸教育内容编辑部审核,转载请注明出处。如有错误或侵权,请联系zuoyan.li@beaconedu.com调整或删除。

彼小岸的头像彼小岸
上一篇 2022年7月1日 下午8:18
下一篇 2022年9月13日 下午7:26

相关推荐