Python淘宝或京东等秒杀抢购脚本实现(秒杀脚本)

作者:退休的老周 时间:2023-01-23 20:25:14 

我们的目标是秒杀淘宝或京东等的订单,这里面有几个关键点,首先需要登录淘宝或京东,其次你需要准备好订单,最后要在指定时间快速提交订单。

这里就要用到一个爬虫利器Selenium,Selenium是一个用于Web应用程序测试的工具,Selenium可以直接运行在浏览器中,通过后台控制操作浏览器,完成购买操作,利用它我们可以驱动浏览器执行特定的动作,抢购脚本就是通过Selenium来完成自动登录和自动购买的操作的。

一、环境

操作系统:Win10
Python版本:3.7.4
Chrome浏览器版本:100.0.4896.60
ChromeDriver版本:100.0.4896.60

注意:Chrome浏览器版本和ChromeDriver版本要保持一致

Python淘宝或京东等秒杀抢购脚本实现(秒杀脚本)

二、安装

1.ChromeDriver安装

步骤一:将下载好的chromedriver.exe文件放置到chrome浏览器所在目录

Python淘宝或京东等秒杀抢购脚本实现(秒杀脚本)

步骤二:复制该目录配置到Windows系统环境变量中

Python淘宝或京东等秒杀抢购脚本实现(秒杀脚本)

步骤三:我的电脑→属性→高级系统设置→环境变量→系统变量→Path→编辑→新建,将复制的目录粘贴确定即可,注意:要一路确定返回。

Python淘宝或京东等秒杀抢购脚本实现(秒杀脚本)

2.Seleuinm安装

Selenium模块是Python的第三方库,可以通过pip进行安装

pip install selenium

或python中导入

Python淘宝或京东等秒杀抢购脚本实现(秒杀脚本)

3.淘宝秒杀脚本

from selenium import webdriver
import datetime
import time
# 连接Chrome浏览器
driver = webdriver.Chrome()
def login(url):
   # 打开淘宝登录页,并进行登录
   driver.get("https://www.taobao.com")
   time.sleep(3)
   if driver.find_element_by_link_text("亲,请登录"): # F12 点击事件name定位(注意空格)
       driver.find_element_by_link_text("亲,请登录").click()
       print("请在20秒内完成登录")
       time.sleep(20)
       driver.get(url)
   time.sleep(3)
   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_LinkBuy"): # F12 点击事件id定位
                   print("速度点击!!!")
                   driver.find_element_by_id("J_LinkBuy").click()
                   time.sleep(0.09)
                   while now >= buytime:
                       try:
                           print("赶紧买!!!")
                           # 提交订单
                           if driver.find_element_by_class_name('go-btn'): # F12 点击事件class定位
                               driver.find_element_by_class_name('go-btn').click()
                       except:
                           time.sleep(0.02)
           except:
               time.sleep(0.08)
       print(now)
       time.sleep(0.05)
#  定位元素方式三种任何一个都可以使用过,实际使用自由组合。
# (1)id定位 driver.find_element_by_id("id")
# (2)name定位 driver.find_element_by_name("name")
# (3)class定位 driver.find_element_by_class_name("class_name")
# 抢购主函数
if __name__ == "__main__":
   times = input("请输入抢购时间:时间格式:2021-12-29 19:45:00.000000")
   url = input("请输入抢购地址")
   login(url)
   buy(times)

4.京东秒杀脚本

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('======login success:', now.strftime('%Y-%m-%d %H:%M:%S'))
   time.sleep(5)

def buy(times, choose):
   # 点击购物车里全选按钮
   if choose == 2:
       print("======请手动勾选需要购买的商品")
   while True:
       now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
       # 对比时间,时间到的话就点击结算
       if now > times:
           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)

#  定位元素方式三种任何一个都可以使用过,实际使用自由组合。
# (1)id定位 driver.find_element_by_id("id")
# (2)name定位 driver.find_element_by_name("name")
# (3)class定位 driver.find_element_by_class_name("class_name")
# 抢购主函数
if __name__ == "__main__":
   times = input("请输入抢购时间,格式如(2018-09-06 11:20:00.000000):")
   browser = webdriver.Chrome()
   browser.maximize_window()
   login()
   choose = int(input("到时间自动勾选购物车请输入“1”,否则输入“2”:"))
   buy(times, choose)

来源:https://www.cnblogs.com/tuixiulaozhou/archive/2022/10/10/16775486.html

标签:Python,秒杀,抢购,脚本
0
投稿

猜你喜欢

  • Python中方法的缺省参数问题解读

    2022-10-07 17:00:45
  • pandas数据框,统计某列数据对应的个数方法

    2023-08-12 11:39:39
  • 详解Python 2.6 升级至 Python 2.7 的实践心得

    2022-01-03 09:47:09
  • python使用urllib2提交http post请求的方法

    2023-11-24 19:35:53
  • Python下使用Scrapy爬取网页内容的实例

    2022-05-29 13:43:24
  • php floor()函数案例详解

    2023-06-14 16:13:03
  • Python整数对象实现原理详解

    2022-10-09 13:53:03
  • js中的window.open返回object的错误的解决方法

    2024-04-17 09:52:27
  • Oracle数据库TNS常见错误的解决方法汇总

    2024-01-21 04:45:34
  • Linux中将txt导入到mysql的方法教程

    2024-01-12 13:04:27
  • 基于Element的组件改造的树形选择器(树形下拉框)

    2024-05-28 16:01:30
  • vue2 拖动排序 vuedraggable组件的实现

    2024-05-02 16:59:08
  • MySQL非空约束(not null)案例讲解

    2024-01-24 10:43:51
  • 使用pandas将numpy中的数组数据保存到csv文件的方法

    2023-07-17 15:27:38
  • firefox 2正则表达式

    2008-08-25 19:15:00
  • python 详解如何使用GPU大幅提高效率

    2023-08-24 19:45:46
  • sql server 触发器实例代码

    2012-01-05 19:09:28
  • Pytorch生成随机数Tensor的方法汇总

    2022-11-03 19:39:18
  • python3实现全角和半角字符转换的方法示例

    2021-06-16 13:08:36
  • SQL Server复制功能 巧妙选择避开Bug

    2011-01-04 17:03:00
  • asp之家 网络编程 m.aspxhome.com