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 相关文章推荐
如何搜索查找并解决Django相关的问题
Jun 30 Python
python利用OpenCV2实现人脸检测
Apr 16 Python
Python+matplotlib实现计算两个信号的交叉谱密度实例
Jan 08 Python
Python数据持久化shelve模块用法分析
Jun 29 Python
Python使用combinations实现排列组合的方法
Nov 13 Python
Python enumerate函数功能与用法示例
Mar 01 Python
python单例模式的多种实现方法
Jul 26 Python
Python中six模块基础用法
Dec 08 Python
python文件和文件夹复制函数
Feb 07 Python
python如何删除列为空的行
Jul 17 Python
Python Pygame实战之塔防游戏的实现
Mar 17 Python
python3 字符串str和bytes相互转换
Mar 23 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
手冲咖啡应该是现代精品咖啡店的必备选项吗?
2021/03/03 冲泡冲煮
php 高效率写法 推荐
2010/02/21 PHP
PHP生成唯一的促销/优惠/折扣码(附源码)
2012/12/28 PHP
ThinkPHP使用PHPExcel实现Excel数据导入导出完整实例
2014/07/22 PHP
php读取qqwry.dat ip地址定位文件的类实例代码
2016/11/15 PHP
jquery重新播放css动画所遇问题解决
2013/08/21 Javascript
js调用打印机打印网页字体总是缩小一号的解决方法
2014/01/24 Javascript
nodejs批量修改文件编码格式
2015/01/22 NodeJs
jQuery插件实现大图全屏图片相册
2015/03/14 Javascript
JS实现太极旋转思路分析
2016/12/09 Javascript
JavaScript实现倒计时跳转页面功能【实用】
2016/12/13 Javascript
使用jQuery卸载全部事件的思路详解
2017/04/03 jQuery
js 提取某()特殊字符串长度的实例
2017/12/06 Javascript
详解Vue中localstorage和sessionstorage的使用
2017/12/22 Javascript
微信小程序入口场景的问题集合与相关解决方法
2019/06/26 Javascript
vscode中eslint插件的配置(prettier配置无效)
2019/09/10 Javascript
JS插入排序简单理解与实现方法分析
2019/11/25 Javascript
vue keep-alive实现多组件嵌套中个别组件存活不销毁的操作
2020/10/30 Javascript
vue切换菜单取消未完成接口请求的案例
2020/11/13 Javascript
python中的yield使用方法
2014/02/11 Python
利用python实现命令行有道词典的方法示例
2017/01/31 Python
Python探索之自定义实现线程池
2017/10/27 Python
Python中出现IndentationError:unindent does not match any outer indentation level错误的解决方法
2020/04/18 Python
Pytorch 神经网络—自定义数据集上实现教程
2020/01/07 Python
Python列表解析操作实例总结
2020/02/26 Python
解决jupyter notebook 前面书写后面内容消失的问题
2020/04/13 Python
HTML5 Canvas中使用用路径描画圆弧
2015/01/01 HTML / CSS
Python面试题:Python里面如何生成随机数
2015/03/12 面试题
平面设计岗位职责
2013/12/14 职场文书
创建青年文明号材料
2014/05/09 职场文书
建筑结构施工求职信
2014/07/11 职场文书
学位证书委托书
2014/09/30 职场文书
2015年煤矿安全工作总结
2015/05/23 职场文书
军训通讯稿范文
2015/07/18 职场文书
公司董事任命书
2015/09/21 职场文书
JavaScript原型链详解
2021/11/07 Javascript