随笔 - 63,  文章 - 0,  评论 - 4,  阅读 - 10万

环境:python3.7

浏览器:火狐

在python scripts文件夹下边放入相应版本的geckodriver

本脚本只适用于可以提前把抢购商品加入购物车的场景

cmd页面:

pip install selenium
pip install datetime

事先需要把商品放入购物车,电脑时间和北京时间一致

复制代码
from selenium import webdriver
import time
import datetime

from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.support.wait import WebDriverWait

webdriver = webdriver.Firefox()
webdriver.maximize_window()
webdriver.implicitly_wait(5)

def buy_on_time(buytime):
while True:
now = datetime.datetime.now()
title = webdriver.title()
if now.strftime('%Y-%m-%d %H:%M:%S') == buytime:
for i in range(1, 21): # 每隔0.2秒抢购一次,尝试抢购20次
print(now.strftime('%Y-%m-%d %H:%M:%S'))
print("第%d次抢购" % i)
webdriver.find_element(By.CSS_SELECTOR,'.jdcheckbox').click() # 此处点击的是在购物车页面选中商品的按钮
                webdriver.find_element_by_link_text("去结算").click()
if (webdriver.title == title): # 如果检测到title发生改变,即点击成功,跳出循环
time.sleep(0.2)
else:
break
element = (By.LINK_TEXT,'提交订单')
webdriver.execute_script('window.scrollTo(0, (document.body.scrollHeight)/2)') # 拉滚动轴到页面一半的位置
WebDriverWait(webdriver,10).until(expected_conditions.element_to_be_clickable(element)) # 显示等待
webdriver.find_element(*element).click()
print('purchase success')
quit()
time.sleep(0.5)


webdriver.get("https://cart.jd.com/cart?rd=0.9189005178170556") # 此为购物车网站
webdriver.find_element(By.CSS_SELECTOR,'.login-btn').click() # 一般需要登录,此处点击的是去登录按钮
time.sleep(10)  # 为了避免输入校验码绕过了输入登录账户密码的步骤,此处打开的是二维码页面,请在10秒内用手机app扫描登录,10秒觉得不够可以改成20
buy_on_time("2019-04-11 18:08:00") # 开始抢购时间
复制代码

 

posted on   盈盈的月儿  阅读(26112)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示