最近淘宝又兴起了双十一抢券活动,可是真的很难抢有没有在小编连抢五天失败后突然想到为什么不可以用python自动化试着去抢,于是便有了以下代码
```python
import os
from selenium import webdriver
import datetime
import time
from os import path
#设置Firefox浏览器
driver = webdriver.Firefox()
def login():
#扫码登陆淘宝
driver.get("https://login.taobao.com/")
time.sleep(3)
if driver.find_element_by_xpath("/html/body/div/div[2]/div[3]/div/div/div/div[1]/i"):
driver.find_element_by_xpath("/html/body/div/div[2]/div[3]/div/div/div/div[1]/i").click()
time.sleep(3)
print("请在15秒内完成扫码")
time.sleep(15)
#点击收藏夹
if driver.find_element_by_xpath("/html/body/div[1]/div/ul[2]/li[4]/div[1]/a/span[2]"):
driver.find_element_by_xpath("/html/body/div[1]/div/ul[2]/li[4]/div[1]/a/span[2]").click()
#点击第一个宝贝
if driver.find_element_by_xpath("/html/body/div[2]/div/div/div[2]/div[2]/ul/li[1]/div[1]/div[1]/a/img"):
driver.find_element_by_xpath("/html/body/div[2]/div/div/div[2]/div[2]/ul/li[1]/div[1]/div[1]/a/img").click()
# 当前打开的所有窗口
windows = driver.window_handles
# 转换到最新打开的窗口
driver.switch_to.window(windows[-1])
time.sleep(3)
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:
# 刷新页面
driver.refresh()
time.sleep(1)
#购买
if driver.find_element_by_id("J_linkBuy"):
driver.find_element_by_id("J_linkBuy").click()
#time.sleep(0.01)
#支付订单
if driver.find_element_by_class_name("go-btn"):
driver.find_element_by_class_name("go-btn").click()
print('抢购成功,请尽快付款')
except:
print('请再次尝试提交订单')
# 刷新页面
driver.refresh()
time.sleep(1)
if __name__ == "__main__":
times = "2021-10-21 9:59:59" #input("请输入抢购时间(例如格式:2021-02-01 00:00:00):")
login()
buy(times)
这是一个设置点数购买收藏夹第一个物品的代码,各位大佬对这段
代码有没有什么改进呢?尤其是最后一段需要设置提前1s因为刷
新需要一定的时间,但我们又无法确定准确的刷新时间所以可能造
成误差,大家有什么看法欢迎下方评论我一定尽力修改这段代码。
***写在文末:此文章仅供个人学习、研究之用,请勿用于商业用
途。本文仅为作者想法并未真实使用,请勿真实测试,如涉及
法律问题,后果自负,版权所有,侵权必究 ***



