新手向python实现淘宝自动抢购 您所在的位置:网站首页 如果淘宝抢东西大概几秒抢一次 新手向python实现淘宝自动抢购

新手向python实现淘宝自动抢购

2024-07-03 06:15| 来源: 网络整理| 查看: 265

文章目录

目录

文章目录

前言

一、环境搭建

(1)安装selenium库:

(2)下载Chrome驱动:

(3)将Chromedriver加入到path

(4)将浏览器环境变量添加到path:

二、代码实现

抢购理论

2022 9 9 更新

总结

前言

买东西经常遇到抢购而不得的情况让我怀疑自己的手速,那干脆用python写一个程序吧!

网上的帖子有的用的老版本,有的比较混乱,故重新整理一下。(属实是有点玩不起急眼了)

提示:以下是本篇文章正文内容,下面案例可供参考

一、环境搭建 (1)安装selenium库:

        自行百度,建议pip inatall用国内的源安装

(2)下载Chrome驱动:

        chromedriver的下载地址http://chromedriver.storage.googleapis.com/index.html

        需要注意的是这里有很多种版本,这里需要下载和你浏览器版本最接近的一个。注意是最接            近打     开浏览器,在地址栏输入chrome://version/便可以查看到谷歌当前的版本号

        解压会得到一个exe文件

(3)将Chromedriver加入到path:

        此步骤又分为3小步

 1.桌面右击谷歌浏览器-->打开文件所在位置,将刚解压的.exe文件复制一份到此路径下

        

2. 将刚刚解压的.exe文件复制一份,放入python根目录中

        至于如何查看自己的根目录,教程如下:

        https://blog.csdn.net/K_Duke/article/details/85220872

 3. 将.exe文件再复制并放到当前工程文件同文件夹下

  

(4)将浏览器环境变量添加到path:

打开开始菜单->我的电脑(或计算机)->系统属性->高级系统设置->环境变量,编辑用户变量里的path, 在最后面添加;C:\Program Files (x86)\Google\Chrome\Application\ 或者在最前面添加C:\Program Files (x86)\Google\Chrome\Application\ 修改完之后点击确定按钮保存配置。

注意你的路径不一定和他相同,这个就是右击谷歌浏览器图标的路径,复制下来就好了

二、代码实现 抢购理论

1.打开谷歌进入淘宝网站

2.找到登录键,手动完成登录(15秒延时)

3.进入购物车选中抢购商品

4.结算购买

5.提交订单

   废话不多说,直接展示源码

from selenium import webdriver from selenium.webdriver.common.by import By import datetime import time # 自动打开浏览器并且最大化窗口 driver = webdriver.Chrome() driver.maximize_window() # 自动输入淘宝网址,并根据链接文本选择元素,点击界面上的登录按钮 driver.get('https://www.taobao.com') if driver.find_element(By.LINK_TEXT, '亲,请登录'): driver.find_element(By.LINK_TEXT, '亲,请登录').click() print("请在15秒内完成扫码") time.sleep(15) # 打开购物车列表首页 driver.get("https://cart.taobao.com/cart.htm") time.sleep(3) # 点击全选按钮 if driver.find_element(By.ID, 'J_SelectAll1'): driver.find_element(By.ID, 'J_SelectAll1').click() now = datetime.datetime.now() print("login success:", now.strftime("%Y-%m-%d %H:%M:%S")) def buy(times): while True: # 记录当前时间,使用datatime内置模块 now2 = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") # print(times) print(now2) # 对比时间,时间到的话就点击结算 if now2 >= times: try: if driver.find_element(By.ID, 'J_Go'): driver.find_element(By.ID, 'J_Go').click() driver.find_element(By.LINK_TEXT, '提交订单').click() print('抢购成功,请尽快付款') except: print('请再次尝试提交订单') # print(now2) time.sleep(0.1) if __name__ == "__main__": buy_times = input("请输入抢购时间(例如格式:2022-08-17 21:00:00):") buy(buy_times) 2022 9 9 更新

经过反馈发现这样并不稳定,有时候会卡在提交订单的界面,能不能点击到完全靠运气,经过排查应该是网速不同导致页面加载速度不同,若页面没有完全加载就点击则无法点击。如果是其他网站的话可以用sleep解决网络延迟问题,但是延迟的话则对抢购就毫无意义了。故对buy()函数做如下更改:

经过测试发现这样并不能点到结算按钮,运行会卡在结算按钮处,看来这个结算还必须反复点击才行,,,,真麻烦啊害,故对buy()函数继续更改 :

def buy(times): # 标志位,在点击“结算”按钮后不再进入 while flag 循环 flag = 1 while flag: # 记录当前时间,使用datatime内置模块 now2 = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") # print(times) print(now2) # 对比时间,时间到的话就点击结算 if now2 >= times: if driver.find_element(By.ID, 'J_Go'): driver.find_element(By.ID, 'J_Go').click() flag = 0 while flag == 0: try: driver.find_element(By.XPATH, '//*[@id="submitOrderPC_1"]/div/a[2]').click() print('抢购成功,请尽快付款') except: # 实测只点击一次“结算”按钮可能点不上,所以flag重置1反复点 flag = 1 print('正在再次尝试提交订单') # print(now2) time.sleep(0.1) 总结

第一次发文,格式比较混乱请见谅

人生苦短,我用python,若有侵权请告知~

还请各位看官支持一下我的第二篇帖子————>过尘的文章   https://zhuanlan.zhihu.com/p/558430909



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有