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。有时间弄个京东的,抢茅台。
评论区