富婆闺蜜非让我用Python给她写个淘宝双十一抢购脚本,那只能安排了

白又白学Python 2021-10-27 14:12:46
编程语言 计算机 Python 爬虫 脚本

有一个每年双十一就要剁一只手的姐妹是种什么体验?在没有学会Python的时候,就是让我给她各种抢券,现在学会一点Python,就让我给她写个抢购脚本,哎!有什么办法呢,是自己的惯的那也只能宠着了。



富婆闺蜜非让我用Python给她写个淘宝双十一抢购脚本,那只能安排了_脚本



富婆闺蜜非让我用Python给她写个淘宝双十一抢购脚本,那只能安排了_编程语言_02


经过我不懈努力的研究,实验最终完成啦!欢迎各位大佬给我看看能不能在优化一下,欢迎指出我的不足。

进入正文。。。

咱们的爬取目标

网站:​ ​淘宝​

富婆闺蜜非让我用Python给她写个淘宝双十一抢购脚本,那只能安排了_python_03

工具使用

开发工具:pycharm

开发环境:python3.7, Windows10

使用工具包:selenuim

需求分析

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

项目思路解析

selenium安装配置

selenium是Python自动化测试的工具库,需要配置一些环境驱动

selenium安装

pip install selenium
  • 1.


Selenium安装好之后,并不能直接使用,它需要与浏览器进行对接。这里拿Chrome浏览器为例。若想使用Selenium成功调用Chrome浏览器完成相应的操作,需要通过ChromeDriver来驱动。

链接:

https://chromedriver.storage.googleapis.com/index.html

根据自身的chorme版本选择安装的驱动版本

富婆闺蜜非让我用Python给她写个淘宝双十一抢购脚本,那只能安排了_python_04

富婆闺蜜非让我用Python给她写个淘宝双十一抢购脚本,那只能安排了_爬虫_05

下载完成之后,解压,将其放置在Python安装路径下python文件夹中即可

富婆闺蜜非让我用Python给她写个淘宝双十一抢购脚本,那只能安排了_计算机_06

项目解析

尝试通过selenium打开淘宝首页,检验是否安装成功

from selenium import webdriver
driver = webdriver.Chrome()
driver.maximize_window()
driver.get("https://www.taobao.com")

  • 1.
  • 2.
  • 3.
  • 4.


通过xpath定位选取到登录标签,抢购脚本需要先知道你购买的东西是什么

富婆闺蜜非让我用Python给她写个淘宝双十一抢购脚本,那只能安排了_编程语言_07

登录的方式课自行选择(可账户密码登录,也可扫码登录,辣条在这里用的扫码登录)

登录成功后点击购物车,选取你需要的商品数据(可全选,可自己手动勾选)

富婆闺蜜非让我用Python给她写个淘宝双十一抢购脚本,那只能安排了_python_08

在点击结算按钮

富婆闺蜜非让我用Python给她写个淘宝双十一抢购脚本,那只能安排了_脚本_09

设定一个结算时间,你需要下单的时间

富婆闺蜜非让我用Python给她写个淘宝双十一抢购脚本,那只能安排了_计算机_10

等待时间的到来 点击提交订单按钮

富婆闺蜜非让我用Python给她写个淘宝双十一抢购脚本,那只能安排了_爬虫_11

简易源码分享

from selenium import webdriver
import datetime
import time


driver = webdriver.Chrome()
driver.maximize_window()


def login():
# 打开淘宝登录页,并进行扫码登录
driver.get("https://www.taobao.com")
time.sleep(3)
if driver.find_element_by_link_text("亲,请登录"):
driver.find_element_by_link_text("亲,请登录").click()

print("请在30秒内完成扫码")
time.sleep(30)

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:%f'))


def buy(buytime):
while True:
now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
print("当前时间" + now)
# 对比时间,时间到的话就点击结算
if now > buytime:
try:
# 点击结算按钮
if driver.find_element_by_id("J_Go"):
driver.find_element_by_id("J_Go").click()
driver.find_element_by_link_text('提交订单').click()
except:
time.sleep(0.1)
print(now)
time.sleep(0.1)

if __name__ == "__main__":
# times = input("请输入抢购时间:")
# 时间格式:"2018-09-06 11:20:00.000000"
login()
buy("2021-08-24 14:30:00.000000")
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.


我是白又白i,一名喜欢分享知识的程序媛️
感兴趣的可以关注我的公众号:白又白学Python【非常感谢你的点赞、收藏、关注、评论,一键三连支持】

版权声明
本文为[白又白学Python]所创,转载请带上原文链接,感谢
https://blog.51cto.com/u_14825302/4340070

  1. python将字符串转成特定列表格式
  2. Python做一个保护手机号编程
  3. 用Spyder运行Python爬虫时仅输出“runfile(xx), wdir=xx”
  4. 使用Python对一组数据进行分段拟合,如何处理断点处的左右倒数相等
  5. Python输出符合条件的文件的路径名
  6. Python中pandas怎么实现分组去重统计和求和
  7. python xpath 爬虫,请帮帮我吧!
  8. python 用泰勒公式近似计算sinx的值 求解代码中哪里出现了错误
  9. Python语法2
  10. python如何将输出的各行数字对齐
  11. 使用 Python 进行数据可视化之Matplotlib
  12. python新鲜题 老公们 救救孩子
  13. 如何用python解答 要如何着手
  14. 请问Python正则表达式如何在多个文本中匹配出关键字
  15. Python 三天打鱼两天晒网问题
  16. mac安装python3
  17. 請問python要怎麼印数字倒等腰三角形
  18. 【算法学习】807. 保持城市天际线(java / c / c++ / python / go / rust)
  19. 【算法学习】237. 删除链表中的节点(java / c / c++ / python / go)
  20. 【算法学习】1512. 好数对的数目(java / c / c++ / python / go / rust)
  21. 【算法学习】1672. 最富有客户的资产总量(java / c / c++ / python / go / rust)
  22. 【算法学习】771. 宝石与石头(java / c / c++ / python / go / rust)
  23. 【算法学习】02.03. 删除中间节点(java / c / c++ / python / go)
  24. 【算法学习】1769. 移动所有球到每个盒子所需的最小操作数(java / c / c++ / python / go / rust)
  25. 【算法学习】1486. 数组异或操作(java / c / c++ / python / go / rust)
  26. 【算法学习】剑指 Offer 64. 求1+2+…+n(java / c / c++ / python / go / rust)
  27. 【算法学习】LCP 44. 开幕式焰火(java / c / c++ / python / go / rust)
  28. 【算法学习】剑指 Offer 58 - II. 左旋转字符串(java / c / c++ / python / go / rust)
  29. python的学校疑问难题求解
  30. 大学python题 作业题 基础题
  31. Python字典的知识,输出的样例为,最高分:89
  32. python写入文件失败且程序提前中止
  33. 用Python写一个学生字典,帮帮忙
  34. Python,能不能帮帮忙,真的不会
  35. [python] yield 和 readline() 的使用问题
  36. python安装找不到问题救救孩子
  37. python中循环结构完成数字游戏
  38. 如何用python实现多列vlookup(excle操作)
  39. python语言deLong‘s test:通过统计学的角度来比较两个ROC曲线、检验两个ROC曲线的差异是否具有统计显著性
  40. LPC55S69 MicroPython模组和库函数
  41. LPC55S69 IoT Kit专属 Micropython模组和库函数简介
  42. 安装LPC55S69 MicroPython模块是遇到的CDC Interface驱动问题
  43. 使用soundcard在Python中操作声卡
  44. 自动化快速上手--Python(7)--【字典】--每天半小时
  45. Python之循环结构【包括列表、for语句、range()函数、while语句、循环嵌套、break、continue、算法优化等】
  46. Python模块安装与异常处理详解(numpy、pygame、matplotlib等)
  47. Python__init__.py作用
  48. python 爬取网页时出现多种错误
  49. Python中关于大量绘制速度曲线的问题
  50. python-async的安装和使用方法
  51. Matlab的fread(fild,1,int32)迁移到python变成什么
  52. 想用python开发一个音频过滤器,请指导?
  53. python使用openpyxl读取Excel文件显示No such file or directory
  54. xmoji虚拟头像交互如何使用python(像深度学习)制作?
  55. python 打开页面页面的链接,为什么总是报错呀?
  56. Python中DataLoader的batch_size、shuffle的疑惑。
  57. python安装pymssql库,可以import,但无法调用函数
  58. 【Python学习教程】常用的8个Python数据可视化库!
  59. python处理csv中的时间
  60. 数据结构,元音统计(Python)