前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >「不求人」我用Python抢到了人生的第一单

「不求人」我用Python抢到了人生的第一单

作者头像
程序员小明
发布2020-06-24 09:48:49
2.7K0
发布2020-06-24 09:48:49
举报
文章被收录于专栏:程序员小明程序员小明

最近,为了达成小姐姐的愿望:在某宝上抢到自己心仪的宝贝,小明使用Python轻而易举地实现了抢单。于是,小明自然而然地迷上了Python,差点把小姐姐忘了。

需求分析&前期准备

需求其实很简单,正常购物。我们日常的购物流程如下所示:

开始之前,我们需要准备一下程序运行环境。

环境

  • 系统:Windows/Mac OS
  • Python版本:3.7.2

为了让程序模拟我们每一步操作,给大家介绍一个利器:Selenium

Selenium测试同学应该会感觉特别亲切。它是一个自动化测试工具,通过它我们可以驱动浏览器执行特定的动作,如点击、下拉等等操作,所见即所得。

Selenium的安装

运行如下命令:

代码语言:javascript
复制
pip install selenium

但若想使用Selenium成功调用Chrome浏览器完成相应的操作,我们还需要一个媒介与浏览器对接。小明本次使用的是Chrome浏览器,因此就需要通过ChromeDriver来驱动。

ChromeDriver的安装

这里是谷歌浏览器ChromeDriver的官方下载地址:https://chromedriver.storage.googleapis.com/index.html我们需要根据自己的Chrome浏览器版本,找到相应版本的ChromeDriver,再根据你电脑系统的平台类型进行下载、解压。

  • windows:将其放置在Python安装路径下Scripts文件夹下
  • Mac OS:将其放置在/usr/local/bin

环境配置到此结束,小明编写了一个python脚本,用来验证环境搭建是否成功:

代码语言:javascript
复制
from selenium import webdriver
  # 打开Chrome浏览器
if __name__ == '__main__':
  browser = webdriver.Chrome()

运行代码后,如果成功打开了一个新的浏览器,就证明我们的环境安装的没问题,接下来就可以愉快的购物了。

脚本编写

对比上面淘宝购物流程图,对应代码如下:

  • 打开淘宝网站
代码语言:javascript
复制
 browser.get("https://www.taobao.com")
  • 登录

首先是跳转到登陆页

代码语言:javascript
复制
browser.find_element_by_link_text("亲,请登录").click()

登录方式选择二维码

代码语言:javascript
复制
browser.find_element_by_class_name("icon-qrcode").click()

用手机进行扫码成功之后进行下一步。

  • 登录成功后,打开购物车
代码语言:javascript
复制
 browser.get("https://cart.taobao.com/cart.htm")
  • 勾选商品
代码语言:javascript
复制
  browser.find_element_by_id("J_SelectAll1").click()

推荐选择全选,但如果你的购物车商品比较多,又不想全选购买,那就暂先手动勾选想要下单的商品?。

  • 结算
代码语言:javascript
复制
browser.find_element_by_link_text("结 算").click()
  • 提交订单
代码语言:javascript
复制
browser.find_element_by_link_text('提交订单').click()

只要下单成功,接下来的付款,不用着急,只要在规定的时间内支付就好。以上就是完整购物的流程。那秒杀是如何实现呢?

 秒杀的实现

  思路其实很简单,就是在正常购物的基础上增加一个时间的判断:如果当前时间到了指定的时间点,就触发下单。  获取当前时间,需要使用到datetime这个内置模块,代码如下:

代码语言:javascript
复制
import datetime
  now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')

代码梳理

  • 定义一个login函数,用来登录
  • 定义一个picking函数勾选购物车中的商品
  • 定义一个buy函数等待抢购时间,定时秒杀

完整代码请点击阅读原文访问我的github。

推荐文档

  • Selenium-Python中文文档
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-06-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员小明 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 需求分析&前期准备
  • 环境
    • Selenium的安装
      • ChromeDriver的安装
      • 脚本编写
      •  秒杀的实现
        • 代码梳理
        • 推荐文档
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档