Python+Selenium+Chrome实现淘宝购物车秒杀自动结算
本文介绍如何利用Python结合Selenium库与Chrome浏览器,实现淘宝购物车商品的自动登录与秒杀结算功能。内容涵盖环境配置、WebDriver驱动安装及完整代码解析,旨在帮助开发者通过自动化脚本解决抢购难题,适合初学者参考实践。
以往在淘宝店铺发售AJ球鞋时,手动抢购往往难以抵挡黄牛的速度。鉴于毕业设计期间学习了Python相关知识,笔者编写了这套抢购脚本,以圆自己拥有AJ的小小愿望。
一、所需环境
Selenium
Selenium是一款开源的自动化测试工具,其核心原理是模拟浏览器操作。它支持Java、Python、C#、PHP等主流编程语言。
Selenium常被用于爬虫场景,能够轻松获取经过JS渲染或Ajax异步请求生成的数据。然而,其缺点同样明显:相比正则表达式匹配,Selenium需加载浏览器及更多组件,执行速度较慢。因此,若对速度有极高要求,建议尽量避免使用Selenium。
在Web测试自动化领域,与单元测试和接口测试不同,Web自动化更贴近真实用户行为。它通过模拟用户的点击和文本输入操作,在登录成功后获取数据进行断言。若断言结果一致,则测试通过;反之则失败。虽然用户能直观看到操作结果,但程序只能通过判断特定的“证据”来确认行为是否生效。
二、安装
下载并安装Selenium库。
安装与浏览器对应的驱动程序WebDriver。
驱动程序版本需与本地浏览器版本严格对应。例如,若使用72版本的Chrome浏览器,则需下载ChromeDriver 2.46版本。


下载并解压后,配置环境变量Path即可完成设置。Mac用户可参考相关教程进行配置。
三、代码
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from selenium import webdriver
import datetime
import time
def login():
# 打开淘宝登录页,并进行扫码登录
browser.get("https://www.taobao.com")
time.sleep(3)
if browser.find_element_by_link_text("亲,请登录"):
browser.find_element_by_link_text("亲,请登录").click()
print("请在15秒内完成扫码")
time.sleep(15)
browser.get("https://cart.taobao.com/cart.htm")
time.sleep(3)
now = datetime.datetime.now()
print('login success:', now.strftime('%Y-%m-%d %H:%M:%S'))
def buy(times, choose):
is_buyed = False
# 点击购物车里全选按钮
if choose == 2:
print("请手动勾选需要购买的商品")
while True:
now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
print('现在时间:', now)
# 对比时间,时间到的话就点击结算
if now > times:
if choose == 1:
while True:
try:
if browser.find_element_by_id("J_SelectAllcbx1"):
browser.find_element_by_id("J_SelectAllcbx1").click()
print('尝试全选')
break
except:
print("找不到全选按钮")
# 点击结算按钮
try:
if browser.find_element_by_id("J_Go"):
browser.find_element_by_id("J_Go").click()
print("结算成功")
except:
pass
while True:
try:
if browser.find_element_by_link_text('提交订单') and is_buyed == False:
browser.find_element_by_link_text('提交订单').click()
now1 = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
print("抢购成功时间:%s" % now1)
except:
print("再次尝试提交订单")
time.sleep(0.005)
if __name__ == "__main__":
times = input("请输入抢购时间,格式如(2018-09-06 11:20:00.000000):")
# 时间格式:"2018-09-06 11:20:00.000000"
browser = webdriver.Chrome()
browser.maximize_window()
login()
choose = input("到时间自动勾选购物车请输入“1”,否则输入“2”:")
buy(times, choose)
最后运行run()函数即可执行。
至此,关于Python+Selenium+Chrome实现淘宝购物车秒杀自动结算的介绍结束。如需了解更多相关内容,请搜索本站历史文章或继续浏览后续文章,感谢支持!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









