51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1083|回复: 0
打印 上一主题 下一主题

[转贴] Python基于selenium三方库实现淘宝秒杀功能

[复制链接]
  • TA的每日心情
    无聊
    昨天 09:34
  • 签到天数: 1052 天

    连续签到: 2 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2022-3-7 11:12:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    这里使用chrome浏览器,所以需要用到geckodriver,免费下载地址选择合适自己电脑版本下载。(http://npm.taobao.org/mirrors/chromedriver/
      driver = webdriver.Chrome(executable_path='D:\chromedriver\chromedriver.exe')

      待会儿通过这种方式启动Chrome浏览器
      还需要使用到的三方库是selenium,我们可以通过命令pip3 install selenium来安装这个三方库。需要注意的地方是,用pip install selenium命令可能会安装失败。还有,启动cmd时必须要是管理员的身份,否则,也可能导致失败。
      在准备完这些基础环境后,在PyCharm中新建一个工程,并查看当前工程是否应用了刚刚配好的环境。最后,我们就可以写代码了。

      思路是:
      1.启动浏览器进入淘宝首页。
      2.自动点击首页的登录,需要在10秒内完成登录(最好使用扫码验证)。
      3.自动跳转到商品抢购页面。
      4.自动点击购买和下单。
      5.但是最后的输入付款密码还是得手动操作。

      from selenium import webdriver
      import datetime
      import time

      driver = webdriver.Chrome(executable_path='D:\chromedriver\chromedriver.exe')


      def login():
          # 打开淘宝登录页,并进行扫码登录
          driver.get("https://www.taobao.com")
          time.sleep(3)
          if driver.find_element_by_link_text("亲,请登录"):
              driver.find_element_by_link_text("亲,请登录").click()

          print("请在10秒内完成扫码")
          time.sleep(10)
          # 这里写你需要抢购商品的链接地址
          driver.get("https://detail.tmall.com/item.htm?id=617607737003&ut_sk=1.XMl41x6wReEDAIRpLR4%20IIoV_21380790_1589203479975.Copy.1&sourceType=item&price=0.1&suid=9AD81F3B-3DAF-4E1F-AA08-D92F62C692B6&un=94620f5f027c8264af3e4a851c15f467&share_crt_v=1&spm=a2159r.13376460.0.0&sp_tk=4oKkWFNnTjFMaDdPekvigqQ=&cpp=1&shareurl=true&short_name=h.V9t8CDT&sm=84d143&app=chrome")
          time.sleep(1)


      def buy(buytime):
          while True:
              now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
              if now > buytime:
                  if driver.find_element_by_link_text("立即购买"):
                      driver.find_element_by_link_text("立即购买").click()
                      break
              time.sleep(0.0001)
          while True:
              try:
                  if driver.find_element_by_link_text("提交订单"):
                      driver.find_element_by_link_text("提交订单").click()
              except:
                  time.sleep(1)
              print(now)
              time.sleep(0.0001)


      if __name__ == "__main__":
          login()
          # buy("2020-05-12 10:00:00.000000")
          buy("2020-05-12 15:00:00.000000")
      以上是我提供到的Python源码。



    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-28 00:31 , Processed in 0.059548 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表