当电商平台上演盛大的购物狂欢时,如双十一、双十二,我们常常面临着选择困难症:琳琅满目的商品使我们不知所措,而一旦选定了心仪的商品,看到价格后却可能望而却步。面对这种情况,很多人渴望能够享受到各种优惠,比如大额满减和优惠券,然而通常情况下,这些优惠券抢购的竞争激烈,一般人难以抢到。
不过,别担心!今天我将分享如何利用Python实现零成本抢购优惠券,帮助你在电商狂潮中脱颖而出。通过这个方法,你将有机会在购物过程中轻松获取各类优惠,让你的购物体验更加愉快和经济实惠。
在这个过程中,我们将利用Python编写脚本,通过自动化程序模拟用户的操作,实现快速、高效地抢购优惠券的目标。这不仅能够提高抢购的成功率,还能够让你更加轻松地享受到电商平台提供的各种优惠活动。下面就请期待我的表演吧!!!
Selenium是一个开源、免费、简单、灵活,对Web浏览器支持良好的自动化测试工具,在UI自动化、爬虫等场景下是十分实用的,能够熟练掌握并使用Selenium工具可以大大的提高效率。
Selenium简介
Selenium支持多平台、多浏览器、多语言去实现自动化测试,是一个开源和可移植的Web测试框架,支持并行测试执行,从而减少了时间并提高了测试效率。利用它,我们可以编写相关的自动化程序,让程序完全像人一样在浏览器里面操作Web界面,比如模拟鼠标点击、模拟键盘输入等等。不但能够操作Web界面,还能从Web中获取信息,并且相对来说,使用Selenium来获取信息更加简单,它的基本原理是我们编写自动化程序之后利用浏览器驱动直接对浏览器进行操作,只要我们用户能在浏览器上获得的信息使用Selenium都可以获得。
pip install selenium
如果你的pip不管用,就去把python添加到环境变量,如果还不管用,就去看看你的pip怎么回事,或者试试pip3 install selenium
我之前安装过,所以就显示已安装,我这里是安装过,更新了一下
安装完以后,在你的python安装路径下的lib目录下就能看到
可以使用如下命令查看版本
pip show selenium
下面附上淘宝和京东平台抢券脚本,大家只需复制脚本到python编译器中运行即可
from selenium import webdriver
import datetime
import time
def login(url, login_wait_time=20):
# 打开淘宝首页,并进行登录
driver.get("https://www.taobao.com")
time.sleep(3)
# 查找登录链接并点击
try:
login_link = driver.find_element_by_link_text("亲,请登录")
login_link.click()
print("请在{}秒内完成登录".format(login_wait_time))
time.sleep(login_wait_time)
driver.get(url)
except Exception as e:
print(f"登录失败:{e}")
time.sleep(3)
now = datetime.datetime.now()
print('登录成功:', now.strftime('%Y-%m-%d %H:%M:%S'))
def buy(buy_time):
while True:
now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
# 对比时间,时间到的话就点击结算
if now >= buy_time:
try:
# 查找立即抢购按钮并点击
buy_button = driver.find_element_by_id("J_LinkBuy")
print("速度点击!!!")
buy_button.click()
time.sleep(0.09)
# 等待提交订单按钮出现,然后点击
while now >= buy_time:
try:
print("赶紧买!!!")
go_button = driver.find_element_by_class_name('go-btn')
go_button.click()
except:
time.sleep(0.02)
except Exception as e:
print(f"抢购失败:{e}")
time.sleep(0.08)
print(now)
time.sleep(0.05)
# 主函数
if __name__ == "__main__":
# 用户输入抢购时间和商品地址
times = input("请输入抢购时间:时间格式:2023-12-26 19:45:00.000000 ")
url = input("请输入抢购地址: ")
# 启动 Chrome 浏览器
driver = webdriver.Chrome()
# 执行登录和抢购
login(url)
buy(times)
from selenium import webdriver
import datetime
import time
def login():
# 打开淘宝登录页,并进行扫码登录
browser.get("https://www.jd.com")
time.sleep(3)
if browser.find_element_by_link_text("你好,请登录"):
browser.find_element_by_link_text("你好,请登录").click()
print("请在30秒内完成扫码登录")
time.sleep(30)
browser.get("https://cart.jd.com")
time.sleep(3)
now = datetime.datetime.now()
print('登录成功:', now.strftime('%Y-%m-%d %H:%M:%S'))
time.sleep(5)
def buy(target_time, choose):
# 点击购物车里全选按钮
if choose == 2:
print("请手动勾选需要购买的商品")
while True:
now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
# 对比时间,时间到的话就点击结算
if now > target_time:
if choose == 1:
while True:
try:
if browser.find_element_by_id("J_SelectAll2"):
browser.find_element_by_id("J_SelectAll2").click()
break
except:
print("找不到购买按钮,请手动勾选")
# 点击结算按钮
while True:
try:
if browser.find_element_by_link_text("去结算"):
browser.find_element_by_link_text("去结算").click()
print("结算成功")
break
except:
pass
while True:
try:
if browser.find_element_by_id('order-submit'):
browser.find_element_by_id('order-submit').click()
now1 = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
print("抢购成功时间:%s" % now1)
except:
print("再次尝试提交订单")
time.sleep(0.01)
# 抢购主函数
if __name__ == "__main__":
target_time = input("请输入抢购时间,格式如(2023-12-26 11:20:00.000000): ")
browser = webdriver.Chrome()
browser.maximize_window()
login()
choose = int(input("到时间自动勾选购物车请输入“1”,否则输入“2”: "))
buy(target_time, choose)
参考文章:https://blog.csdn.net/white_idiot/article/details/78385441
https://blog.csdn.net/weixin_45020214/article/details/123938592