侧边栏壁纸
博主头像
江祎铭博主等级

不知江月待何人

  • 累计撰写 177 篇文章
  • 累计创建 3 个标签
  • 累计收到 119 条评论
标签搜索

目 录CONTENT

文章目录

Python自动抢购脚本,学废了双十一双十二帮女票抢购心爱的礼物,隔壁女孩都馋哭了。

江祎铭
2022-08-11 / 1 评论 / 1 点赞 / 691 阅读 / 2,743 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2022-09-05,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。
广告 广告

Python版本:3.10

分享一个秒杀抢购的脚本程序,感兴趣的朋友一起看看吧

第一步:需要把想要的商品加进购物车( 此脚本是对购物车内全部商品进行下单操作,所以不够买的商品最好先从购物车内删除。)

第二步:写好Python脚本,在抢购之前运行,并设置好抢购时间。
@TOC

1、安装Python3

下载链接: https://www.python.org/

检查 Python3 是否正常可用:python3 -V

在这里插入图片描述

2、集成开发环境:Pycharm

下载链接: https://www.jetbrains.com/pycharm/download/#section=windows

在这里插入图片描述

你用vscode也行!

3、安装webdriver扩展。

它是Selenium模块的一部分。Selenium是一个用于Web应用程序测试的工具,用于测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。所以其实就是安装Selenium:Win+R,输入cmd,在命令行中输入pip show selenium

pip:python包管理工具,提供了对Python 包的查找、下载、安装、卸载的功能。

在这里插入图片描述

注:pip 已内置于 Python 3.4 和 2.7 及以上版本,其他版本需另行安装。

4、安装chrome浏览器,没谷歌写什么程序

5、安装chromedriver。

它是chrome的插件,是为了webDriver能通过操作chromedriver来控制chrome浏览器自动操作,如打开网页,点击按钮等操作。

下载地址:
http://chromedriver.storage.googleapis.com/index.html或者https://npm.taobao.org/mirrors/chromedriver/

注意:下载时要根据电脑系统和chrome浏览器版本来选择对应的chromedriver版本。

可以通过浏览器右上角的三点→帮助→关于Google Chrome来查看自己的chrome版本。

在这里插入图片描述

下载chromedriver安装包后,进行解压,放在chrome安装的同级目录下,同时在环境变量PATH中添加路径。

在这里插入图片描述

6、上代码


# coding=utf-8
import os
from selenium import webdriver
import datetime
import time
from os import path
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By


#此处chromedriver改为自己下载解压的chromedriver的路径
s = Service('C:/Users/wzyh/AppData/Local/Google/Chrome/Application/chromedriver')
driver = webdriver.Chrome(service=s)
#driver.maximize_window()

def login():
    #打开淘宝首页,扫码登陆淘宝
    driver.get("https://www.taobao.com")
    time.sleep(3)
    if driver.find_element(by=By.LINK_TEXT, value='亲,请登录'):
        driver.find_element(by=By.LINK_TEXT, value='亲,请登录').click()
        if driver.find_element(by=By.CLASS_NAME, value='icon-qrcode'):
            driver.find_element(by=By.CLASS_NAME, value='icon-qrcode').click()
        print("请在30秒内完成扫码登录...")
        # 倒计时30秒
        for i in range(30, 0, -1):
            print(i)
            time.sleep(1)

        print('未检测到登录,正在退出进程...')
        # time.sleep(30)
        #打开购物车列表首页
        driver.get("https://cart.taobao.com/cart.htm")
        time.sleep(3)
        #全选购物车

    if driver.find_element(by=By.ID, value='J_SelectAll1'):
        driver.find_element(by=By.ID, value='J_SelectAll1').click()
    now = datetime.datetime.now()
    print("login success:", now.strftime("%Y-%m-%d %H:%M:%S"))

def buy(times):
    while True:
        #记录当前时间,使用datatime内置模块
        now = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
        print(times)
        print(now)
        # 对比时间,时间到的话就点击结算
        if now == times:
            try:
                if driver.find_element(by=By.ID, value='J_Go'):
                    driver.find_element(by=By.ID, value='J_Go').click()
                    driver.find_element(by=By.LINK_TEXT, value='提交订单').click()
                    print('抢购成功,请尽快付款')
            except:
                 print('请再次尝试提交订单')
        print(now)
        time.sleep(0.1)

if __name__ == "__main__":
    times = input("请输入抢购时间(例如格式:2022-08-11 12:00:00):")
    login()
    buy(times)

直接运行

在这里插入图片描述
输入时间 并回车

在这里插入图片描述

这时候会弹出一个谷歌窗口,并跳转淘宝登录页,我设置的时间是30秒,30秒内没登录就退出进程了。

在这里插入图片描述

补充说明:

selenium4.0中的find_element方法老版本跟新版本写法不一样
在这里插入图片描述
可以看到,上面那个find_element_by_link_text已被划上横线,表示已经弃用,改用新方法find_element(by=By.LINK_TEXT, value='亲,请登录')

在这里插入图片描述
目前此脚本不支持自动stop,只能手动stop。有时间弄个京东的,抢茅台。

1
广告 广告

评论区