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 中迭代器与生成器实例详解
Mar 29 Python
python3之模块psutil系统性能信息使用
May 30 Python
flask session组件的使用示例
Dec 25 Python
Python多进程方式抓取基金网站内容的方法分析
Jun 03 Python
Python 操作 ElasticSearch的完整代码
Aug 04 Python
Python pandas.DataFrame 找出有空值的行
Sep 09 Python
在pycharm中为项目导入anacodna环境的操作方法
Feb 12 Python
keras实现调用自己训练的模型,并去掉全连接层
Jun 09 Python
解决Keras自带数据集与预训练model下载太慢问题
Jun 12 Python
Python调用高德API实现批量地址转经纬度并写入表格的功能
Jan 12 Python
如何使用flask将模型部署为服务
May 13 Python
PYTHON 使用 Pandas 删除某列指定值所在的行
Apr 28 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
php检索或者复制远程文件的方法
2015/03/13 PHP
PHP session文件独占锁引起阻塞问题解决方法
2015/05/12 PHP
php实现修改新闻时删除图片的方法
2015/05/12 PHP
JavaScript中各种编码解码函数的区别和注意事项
2010/08/19 Javascript
JS实现选中当前菜单后高亮显示的导航条效果
2015/10/15 Javascript
微信小程序 用户数据解密详细介绍
2017/01/09 Javascript
Angular.js 4.x中表单Template-Driven Forms详解
2017/04/25 Javascript
JavaScript模拟文件拖选框样式v1.0的实例
2017/08/04 Javascript
JQuery判断正整数整理小结
2017/08/21 jQuery
inner join 内联与left join 左联的实例代码
2017/09/18 Javascript
vue中手机号,邮箱正则验证以及60s发送验证码的实例
2018/03/16 Javascript
vue 1.0 结合animate.css定义动画效果
2018/07/11 Javascript
Vue2.0点击切换类名改变样式的方法
2018/08/22 Javascript
jQuery层叠选择器用法实例分析
2019/06/28 jQuery
解决layui-open关闭自身窗口的问题
2019/09/10 Javascript
[03:14]DOTA2斧王 英雄基础教程
2013/11/26 DOTA
使用Python脚本在Linux下实现部分Bash Shell的教程
2015/04/17 Python
Python解决N阶台阶走法问题的方法分析
2017/12/28 Python
pygame游戏之旅 按钮上添加文字的方法
2018/11/21 Python
简单的Python调度器Schedule详解
2019/08/30 Python
Python利用Faiss库实现ANN近邻搜索的方法详解
2020/08/03 Python
python 解决Windows平台上路径有空格的问题
2020/11/10 Python
CSS3实现多重边框的方法总结
2016/05/31 HTML / CSS
Mytheresa中国官网:德国时尚奢侈品商城
2017/08/04 全球购物
华硕新加坡官方网上商店:ASUS Singapore
2020/07/09 全球购物
介绍一下.net和Java的特点和区别
2012/09/26 面试题
电子商务专业自我鉴定
2013/12/18 职场文书
学术会议欢迎词
2014/01/09 职场文书
《燕子》教学反思
2014/02/18 职场文书
2014年教师党员公开承诺书
2014/05/28 职场文书
2014年大堂经理工作总结
2014/11/21 职场文书
加薪申请书应该这样写!
2019/07/04 职场文书
2019请假条的基本格式及范文!
2019/07/05 职场文书
用Python爬取某乎手机APP数据
2021/06/15 Python
Python OpenCV之常用滤波器使用详解
2022/04/07 Python
PyTorch中permute的使用方法
2022/04/26 Python