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使用cookie库操保存cookie详解
Mar 03 Python
Flask框架学习笔记(一)安装篇(windows安装与centos安装)
Jun 25 Python
Python中使用item()方法遍历字典的例子
Aug 26 Python
Python遍历numpy数组的实例
Apr 04 Python
python复制文件到指定目录的实例
Apr 27 Python
Django项目使用ckeditor详解(不使用admin)
Dec 17 Python
python实现一个猜拳游戏
Apr 05 Python
Python selenium爬取微博数据代码实例
May 22 Python
浅谈keras中loss与val_loss的关系
Jun 22 Python
Python实现简单的猜单词小游戏
Oct 28 Python
Scrapy-Redis之RedisSpider与RedisCrawlSpider详解
Nov 18 Python
python自然语言处理之字典树知识总结
Apr 25 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 移除数组重复元素的一点说明
2008/11/27 PHP
ezSQL PHP数据库操作类库
2010/05/16 PHP
使用PHP接收POST数据,解析json数据
2013/06/28 PHP
基于jquery实现拆分姓名的方法(纯JS版)
2013/05/08 Javascript
JavaScript等比例缩放图片控制超出范围的图片
2013/08/06 Javascript
js从10种颜色中随机取色实现每次取出不同的颜色
2013/10/23 Javascript
js实现可拖动DIV的方法
2013/12/17 Javascript
浅谈EasyUI中Treegrid节点的删除
2015/03/01 Javascript
javascript图片预加载实例分析
2015/07/16 Javascript
JS+DIV+CSS实现仿表单下拉列表效果
2015/08/18 Javascript
【JS+CSS3】实现带预览图幻灯片效果的示例代码
2016/03/17 Javascript
AngularJS Ajax详解及示例代码
2016/08/17 Javascript
Bootstrap进度条与AJAX后端数据传递结合使用实例详解
2017/04/23 Javascript
详解Eslint 配置及规则说明
2018/09/10 Javascript
详解小程序之简单登录注册表单验证
2019/05/13 Javascript
利用JavaScript的Map提升性能的方法详解
2019/08/14 Javascript
vue中重定向redirect:‘/index‘,不显示问题、跳转出错的完美解决
2020/09/28 Javascript
JavaScript实现音乐导航效果
2020/11/19 Javascript
js面向对象封装级联下拉菜单列表的实现步骤
2021/02/08 Javascript
[00:52]DOTA2国际邀请赛
2020/02/21 DOTA
简单使用Python自动生成文章
2014/12/25 Python
Python3学习urllib的使用方法示例
2017/11/29 Python
Python爬虫实现爬取京东手机页面的图片(实例代码)
2017/11/30 Python
python:接口间数据传递与调用方法
2018/12/17 Python
Python实现井字棋小游戏
2020/03/09 Python
keras中的卷积层&池化层的用法
2020/05/22 Python
美国滑雪板和装备购物网站:Skis.com
2018/12/20 全球购物
命名空间(namespace)和程序集(Assembly)有什么区别
2015/09/25 面试题
什么是重载?CTS、CLS和CLR分别做何解释
2012/05/06 面试题
个人自我鉴定
2013/11/07 职场文书
消防安全承诺书
2014/05/22 职场文书
2014年环卫工作总结
2014/11/22 职场文书
2014幼儿园班主任工作总结
2014/12/04 职场文书
埃及王子观后感
2015/06/16 职场文书
学校学期工作总结
2015/08/13 职场文书
nginx静态资源的服务器配置方法
2022/07/07 Servers