python自动下单脚本

您所在的位置:网站首页 淘宝自动发货脚本 python自动下单脚本

python自动下单脚本

2024-07-13 19:47| 来源: 网络整理| 查看: 265

点击上方“后端开发技术”,选择“设为星标” 

优质文章和资源,及时送达

自动下单脚本

        闲来无事,写了一个定时抢购下单的脚本,可用于淘宝和天猫商品的定时秒杀,但是最终付款操作需要手动完成。

        长话短说直接介绍脚本的运行步骤。

安装python3

请自行安装python 3,如果已安装版本是python 2,推荐使用版本管理工具。python3:https://www.python.org/downloads/

安装所需依赖 

pip install selenium pip install pillow 如果还有其他缺失 请根据提示 pip install 安装 需要有chrome浏览器和chromedriver,下载链接在文章末尾

    3.设置抢购页面url

    4.设置天猫还是淘宝 

这里推荐使用默认购物车模式3,代码中的url也不需要修改,通过购物车下单更快。

    5.设置开抢时间 

    6.运行程序 

    7.扫码登录 

    8.选中要购买商品以及相应种类等(必须选中!!!) 

    9.等待自动下单

代码如下,复制到本地文件格式为xxx.py,配置运行即可:

# python3.6.5 # coding:utf-8 # 天猫淘宝自动下单 用于定时抢购 import os from selenium import webdriver import requests import time from selenium.webdriver.chrome.options import Options # 创建浏览器对象 chrome_options = Options() # 关闭使用 ChromeDriver 打开浏览器时上部提示语 "Chrome正在受到自动软件的控制" chrome_options.add_argument("disable-infobars") # 允许浏览器重定向,Framebusting requires same-origin or a user gesture # chrome_options.add_argument('--headless') driver = webdriver.Chrome(os.path.join(os.path.dirname(__file__), "chromedriver.exe"), chrome_options=chrome_options) # 窗口最大化显示 driver.maximize_window() def login(url, mall): ''' 登陆函数 url:商品的链接 mall:商城类别 ''' driver.get(url) driver.implicitly_wait(10) time.sleep(2) # 淘宝和天猫的登陆链接文字不同 if mall == '1': # 找到并点击淘宝的登陆按钮 driver.find_element_by_link_text("亲,请登录").click() elif mall == '2': # 找到并点击天猫的登陆按钮 driver.find_element_by_link_text("请登录").click() print("请在30秒内完成登录") # time.sleep(10) # driver.get_screenshot_as_file("login.png") # img = Image.open('login.png') # 显示图片 # img.show() # 用户扫码登陆 time.sleep(30) def buy(buy_time, mall, time_dif): ''' 购买函数 buy_time:购买时间 mall:商城类别 ''' print("开始购买") if mall == '1': # "立即购买"的css_selector btn_buy = '#J_juValid > div.tb-btn-buy > a' # "立即下单"的css_selector btn_order = '#submitOrder_1 > div.wrapper > a' elif mall == '3': btn_buy = '#J_Go' btn_order = '#submitOrderPC_1 > div > a' else: btn_buy = '#J_LinkBuy' btn_order = '#submitOrderPC_1 > div > a' timeArray = time.strptime(buy_time, "%Y-%m-%d %H:%M:%S") # 转为时间戳 timeStamp = int(time.mktime(timeArray)) print("开始准备购买") # checkbox = driver.find_element_by_css_selector("#J_Item_1116006369759 > ul > li > div > div > div") # checkbox.click() selector = driver.find_element_by_css_selector(btn_buy) while True: # 现在时间大于预设时间则开售抢购 tmp_time = time.time() if tmp_time >= (timeStamp - time_dif): try: print("开始购买" + str(time.time())) # 找到“立即购买”,点击 if selector: print("点击" + str(time.time())) selector.click() break except: pass while True: try: # 找到“立即下单”,点击, # print("尝试提交订单") order_selector = driver.find_elements_by_css_selector(btn_order) if order_selector: print("购买" + str(time.time())) order_selector[-1].click() # 下单成功,跳转至支付页面 print("购买成功" + str(time.time() - tmp_time)) break driver.refresh() except: driver.refresh() time.sleep(0.01) def get_server_time(): time_start = time.time() r1 = requests.get(url='http://api.m.taobao.com/rest/api3.do?api=mtop.common.getTimestamp', headers={ 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 UBrowser/6.2.4098.3 Safari/537.36'}) x = eval(r1.text) tmp = time.time() - time_start timeNum = int(x['data']['t']) timeStamp = float(timeNum / 1000) print(tmp) # timeArray = time.localtime(timeStamp) # otherStyleTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)     return timeStamp, tmp # driver.quit()

启动方法:

# 使用方法 # 1 设置url # 2 设置天猫还是淘宝 # 3 设置开抢时间 # 4 运行程序 # 5 扫码登录 # 6 选中要购买商品以及相应种类等(必须选中!!!) # 7 自动下单 # if __name__ == "__main__": # 输入要购买物品 url # 如果是天猫超市的抢购 请先加入购物车 此处为购物车链接 url = "https://cart.taobao.com/cart.htm" # 请选择商城(淘宝 1 天猫 2 3 通过购物车 输入数字: mall = '3' # 输入开售时间 bt = "2020-03-01 15:00:00" server_time, tmp = get_server_time() time_dif = time.time() - server_time + tmp + tmp login(url, mall) buy(bt, mall, 2 * time_dif + 0.5)

下载chromedriver

链接:

https://pan.baidu.com/s/1EfWys6NzDne3YFNCzBzIAQ  密码:31mo

最终效果与网速等条件有直接关系,没接口快但比手工强太多,只是一种思路,不喜勿喷。

希望一切顺利。

◆ ◆ ◆  ◆ ◆

关注并后台回复 “面试” 或者  “视频”,

即可免费获取最新2019BATJava

大厂面试题和大数据微服务视频

您的分享和支持是我更新的动力



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3