python实现淘宝秒杀脚本


Posted in Python onJune 23, 2020

本文实例为大家分享了python实现淘宝秒杀脚本的具体代码,供大家参考,具体内容如下

1.安装pycharm。网上教程很多。

2.安装 Selenium 库。

Selenium支持很多浏览器,我选择的是Firefox浏览器。

因为我这里是Python3环境,自带的又pip,所以安装selenium直接使用pip安装

安装方法:

--打开cmd;

--输入命令进入Python36/Scripts(找到下图的目录)目录下;

--输入命令 pip install selenium;

--回车,等待自动安装;

--当最后一行代码出现Successfully install selenium-XX时,表示安装成功。

python实现淘宝秒杀脚本

python实现淘宝秒杀脚本

3.插件 FireBug

FireBug 是火狐浏览器的一款查看代码元素的插件,可以快速的定位元素,selenium的重点就是元素定位,只有定到位了,才能进行下一步操作。

安装方法:

--打开Firefox浏览器,点击右上角按钮

--点击附加组件

--点击扩展

--搜索firebug

--点击安装,重启浏览器

--测试安装成功,按F12出现如下画面,表示firebug已经安装成功了

python实现淘宝秒杀脚本

python实现淘宝秒杀脚本

4.安装 驱动安装 geckodriver(windows环境下)

文件链接在下方。

使用方法:

1、下载完成解压;

2、将 geckodriver 放到 该浏览器可执行文件的路径下

python实现淘宝秒杀脚本

3、添加到环境变量中

python实现淘宝秒杀脚本

5. 设置 pycharm

先创建一个工程

打开 pycharm -> 打开 file -> 点击 setting -> 点击最右边的设置按钮

python实现淘宝秒杀脚本

点击 add, 在 Virtualenv Environment 和 System Interpreter 并选定找到本文给的 python 运行文件夹,Location 是自己建立的工作文件夹,里面为空,参考操作如下:

python实现淘宝秒杀脚本

打开 pycharm -> 打开 file -> 点击 setting

将 project Interpreter 设置为 本文给的文件,或是自己本身的 python自带运行库

python实现淘宝秒杀脚本

 6. 新建一个python文件

 输入以下程序:

# -*- coding: utf-8 -*- 
from selenium import webdriver 
driver = webdriver.Firefox() 
driver.get(https://www.baidu.com)

得到如下:

python实现淘宝秒杀脚本

则成功搭建好环境。

7. 淘宝秒杀程序

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 2018/09/05
# 淘宝秒杀脚本,扫码登录版
import os
from selenium import webdriver
import datetime
import time
from os import path
from selenium.webdriver.common.action_chains import ActionChains
 
d = path.dirname(__file__)
abspath = path.abspath(d)
 
 
driver = webdriver.Firefox()
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_CheckBox_939775250537"):
 # driver.find_element_by_id("J_CheckBox_939775250537").click()
 # if driver.find_element_by_id("J_CheckBox_939558169627"):
 # driver.find_element_by_id("J_CheckBox_939558169627").click()
 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(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_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("2018-10-22 18:55:00.000000")

以上程序是参照对应的 html 源码的对应元素所选择的。举例如下:

python实现淘宝秒杀脚本

中对应的 J_SelectAll1 对应如下:

python实现淘宝秒杀脚本

关于 selenium 和 html 源码的交互以后有时间再来研究。

资料链接如下:链接地址

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python的ORM框架SQLObject入门实例
Apr 28 Python
Python深入学习之上下文管理器
Aug 31 Python
scrapy自定义pipeline类实现将采集数据保存到mongodb的方法
Apr 16 Python
Python合并字典键值并去除重复元素的实例
Dec 18 Python
深入理解Python中range和xrange的区别
Nov 26 Python
Python内置模块hashlib、hmac与uuid用法分析
Feb 12 Python
python二维列表一维列表的互相转换实例
Jul 02 Python
Pytorch 抽取vgg各层并进行定制化处理的方法
Aug 20 Python
Python3使用PySynth制作音乐的方法
Sep 09 Python
python模拟点击网页按钮实现方法
Feb 25 Python
Python实现Wordcloud生成词云图的示例
Mar 30 Python
python如何进入交互模式
Jul 06 Python
python实现网页自动签到功能
Jan 21 #Python
python实现桌面壁纸切换功能
Jan 21 #Python
在Python中通过getattr获取对象引用的方法
Jan 21 #Python
python实现windows壁纸定期更换功能
Jan 21 #Python
PyQt5+requests实现车票查询工具
Jan 21 #Python
Python设计模式之策略模式实例详解
Jan 21 #Python
Python设计模式之装饰模式实例详解
Jan 21 #Python
You might like
从刷票了解获得客户端IP的方法
2015/09/21 PHP
jQuery Ajax 实例全解析
2011/04/20 Javascript
Jquery时间验证和转换工具小例子
2013/07/01 Javascript
JavaScript包装对象使用介绍
2013/08/29 Javascript
13个PHP函数超实用
2015/10/21 Javascript
javascript实现五星评分功能
2015/11/10 Javascript
js+css绘制颜色动态变化的圈中圈效果
2016/01/27 Javascript
js实现常用排序算法
2016/08/09 Javascript
JavaScript下拉菜单功能实例代码
2017/03/01 Javascript
VUE 更好的 ajax 上传处理 axios.js实现代码
2017/05/10 Javascript
React Native使用Modal自定义分享界面的示例代码
2017/10/31 Javascript
Angular父组件调用子组件的方法
2018/04/02 Javascript
vue组件中使用props传递数据的实例详解
2018/04/08 Javascript
angularJs提交文本框数据到后台的方法
2018/10/08 Javascript
Vue-drag-resize 拖拽缩放插件的使用(简单示例)
2019/12/04 Javascript
python pandas dataframe 行列选择,切片操作方法
2018/04/10 Python
python3 自动识别usb连接状态,即对usb重连的判断方法
2019/07/03 Python
在Python函数中输入任意数量参数的实例
2019/07/16 Python
tensorflow求导和梯度计算实例
2020/01/23 Python
Pycharm如何运行.py文件的方法步骤
2020/03/03 Python
Python实现RabbitMQ6种消息模型的示例代码
2020/03/30 Python
详解python 内存优化
2020/08/17 Python
css3 transform属性详解
2014/09/30 HTML / CSS
html5移动端价格输入键盘的实现
2019/09/16 HTML / CSS
微软日本官方网站:Microsoft日本
2017/11/26 全球购物
如何开启linux的ssh服务
2013/06/03 面试题
会计实习自我鉴定
2013/12/04 职场文书
群众路线批评与自我批评
2014/02/06 职场文书
毕业班联欢会主持词
2014/03/27 职场文书
大学生社会实践评语
2014/04/25 职场文书
总经理人事任命书
2014/06/05 职场文书
增员口号大全
2014/06/18 职场文书
Redis高可用集群redis-cluster详解
2022/03/20 Redis
python游戏开发Pygame框架
2022/04/22 Python
Android存储中最基本的文件存储方式
2022/04/30 Java/Android
Vue 打包后相对路径的引用问题
2022/06/05 Vue.js