版权声明:转载请联系350267226,辛苦原创,请勿盗取。 https://blog.csdn.net/shuryuu/article/details/82459415
本篇文章主要介绍了Python 通过selenium实现淘宝秒杀的示例代码,本脚本是扫码登录的,并支持毫秒级别的抢购,基本在预设抢购时间之后0.16秒的时候就会下单。
之前在网上看见一位朋友写的淘宝抢购脚本,但是由于滑块问题,并不能使用,想在淘宝上帮女朋友抢护肤品,所以就照猫画虎的写了下淘宝的秒杀脚本,经自己实验可行。直接上代码:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#2018/09/05
#淘宝秒杀脚本,扫码登录版
import os
from selenium import webdriver
import datetime
import time
from os import path
d = path.dirname(__file__)
abspath = path.abspath(d)
chromedriver = abspath+"\chromedriver.exe"
os.environ["webdriver.chrome.driver"] = chromedriver
driver = webdriver.Chrome(chromedriver)
driver.maximize_window()
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("请在15秒内完成扫码")
time.sleep(15)
driver.get("https://cart.taobao.com/cart.htm")
time.sleep(3)
# 点击购物车里全选按钮
if driver.find_element_by_id("J_SelectAll1"):
driver.find_element_by_id("J_SelectAll1").click()
now = datetime.datetime.now()
print('login success:', now.strftime('%Y-%m-%d %H:%M:%S'))
def buy(buytime):
while True:
now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
# 对比时间,时间到的话就点击结算
if now > buytime:
try:
# 点击结算按钮
if driver.find_element_by_id("J_Go"):
driver.find_element_by_id("J_Go").click()
driver.find_element_by_link_text('提交订单').click()
except:
time.sleep(0.1)
print(now)
time.sleep(0.1)
if __name__ == "__main__":
times = input("请输入抢购时间:")
#时间格式:"2018-09-06 11:20:00.000000"
login()
buy(times)
为了方便我女朋友使用,此代码为了打包exe方便做了一点点改动,所以直接运行是不行的。因为大部分用户电脑上并没有python环境,所以我将此程序打包成了exe,方便普通用户使用。软件已上传分享,没有积分的话,也可联系我索要exe程序。
9月19日修改:
代码可能被淘宝的程序猿看见了,脚本偶尔会被和谐,如遇扫码界面无二维码可以采用如下方法应对,在扫码界面之后手动点击支付宝登录,然后支付宝扫码登录即可,后续功能无影响。
1,
2,
3,
留下联系方式之后,太多人加我了,所以还是把联系方式删掉了,有问题留言即可,看到会回复的。