python实现淘宝秒杀聚划算抢购自动提醒源码


Posted in Python onJune 23, 2020

说明

本实例能够监控聚划算的抢购按钮,在聚划算整点聚的时间到达时发出提醒(音频文件自己定义位置)并自动弹开页面(URL自己定义)。

同时还可以通过命令行参数自定义刷新间隔时间(默认0.1s)和监控持续时间(默认1800s)。

源码

# encoding: utf-8 
''''' 
@author: Techzero 
@email: techzero@163.com 
@time: 2014-5-18 下午5:06:29 
''' 
import cStringIO 
import getopt 
import time 
import urllib2 
import subprocess 
import sys 
 
from datetime import datetime 
 
MEDIA_PLAYER = 'C:/Program Files/Windows Media Player/wmplayer.exe' 
MEDIA_FILE = 'D:/notify.mp3' 
CHROME = 'C:/Program Files (x86)/Google/Chrome/Application/chrome.exe' 
URL = 'http://detail.ju.taobao.com/home.htm?spm=608.2214381.2.1.SY0wVT&item_id=16761325430&id=10000002801432' 
NO_X11 = False 
 
def get_current_button(): 
 '''''获取当前按钮状态''' 
 content = urllib2.urlopen(URL).read() #获取页面内容 
  
 buf = cStringIO.StringIO(content.decode('gbk').encode('utf8')) #将页面内容转换为输入流 
 current_button = None 
 for line in buf: 
  line = line.strip(' \n\r') #去掉回车换行 
   
  if line.find(r'<a href="#" rel="external nofollow" class="extra notice J_BuyButtonSub">开团提醒</a>') != -1: 
   current_button = '开团提醒' 
   break 
  elif line.find(r'<div class="main-box chance ">') != -1: 
   current_button = '还有机会' 
   break 
  elif line.find(r'<span class="out floatright">卖光了...</span>') != -1: 
   current_button = '卖光了' 
   break 
  elif line.find(r'<span class="out floatright">已结束...</span>') != -1: 
   current_button = '已结束' 
   break 
  elif line.find(r'<input type="submit" class="buyaction J_BuySubmit" title="马上抢" value="马上抢"/>') != -1: 
   current_button = '马上抢' 
   break 
   
 buf.close() 
 return current_button 
 
 
def notify(): 
 '''''发出通知并用Chrome打开秒杀页面''' 
 subprocess.Popen([MEDIA_PLAYER, MEDIA_FILE]) 
 if not NO_X11: 
  subprocess.Popen([CHROME, URL]) 
  print '打开页面' 
 
 
def monitor_button(interval, last): 
 '''''开始监视按钮''' 
 elapse = 0 
 while elapse < last: 
  current_button = get_current_button() 
 
  now = datetime.now() 
  print '%d-%d-%d %d:%d:%d - 现在按钮是 %s' % (now.year, now.month, now.day, now.hour, now.minute, now.second, current_button) 
 
  if current_button == '马上抢' or current_button == '还有机会': 
   print '赶紧抢购!' 
   notify() 
   break 
  elif current_button == '卖光了' or current_button == '已结束': 
   print '下次再试吧!' 
   break 
  else: 
   print '还没开始呢,再等等吧!' 
 
  time.sleep(interval) 
  elapse += interval 
 
 
def usage(): 
 print ''''' 
usage: monitor_mac_price.py [options] 
 
Options: 
 -i interval: 30 seconds by default. 
 -l last: 1800 seconds by default. 
 -h: Print this usage. 
 -X: Run under no X11. 
''' 
 
if __name__ == '__main__': 
 try: 
  opts, args = getopt.getopt(sys.argv[1:], 'i:l:hX') 
 except getopt.GetoptError, err: 
  print str(err) 
  sys.exit(1) 
 
 interval = 0.1 
 last = 1800 
 
 for opt, val in opts: 
  if opt == '-i': 
   interval = int(val) 
  elif opt == '-l': 
   last = int(val) 
  elif opt == '-X': 
   NO_X11 = True 
  elif opt == '-h': 
   usage() 
   sys.exit() 
 
 monitor_button(interval, last)

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

Python 相关文章推荐
Python操作串口的方法
Jun 17 Python
举例讲解Python中的迭代器、生成器与列表解析用法
Mar 20 Python
Python随机生成手机号、数字的方法详解
Jul 21 Python
Python实现k-means算法
Feb 23 Python
Python的条件锁与事件共享详解
Sep 12 Python
python socket 聊天室实例代码详解
Nov 14 Python
Python使用matplotlib绘制Logistic曲线操作示例
Nov 28 Python
使用PyTorch实现MNIST手写体识别代码
Jan 18 Python
如何在 Matplotlib 中更改绘图背景的实现
Nov 26 Python
python代码实现猜拳小游戏
Nov 30 Python
Python创建文件夹与文件的快捷方法
Dec 08 Python
python邮件中附加文字、html、图片、附件实现方法
Jan 04 Python
初探TensorFLow从文件读取图片的四种方式
Feb 06 #Python
用十张图详解TensorFlow数据读取机制(附代码)
Feb 06 #Python
Python实现matplotlib显示中文的方法详解
Feb 06 #Python
Python实现自动上京东抢手机
Feb 06 #Python
Python获取指定文件夹下的文件名的方法
Feb 06 #Python
TensorFlow如何实现反向传播
Feb 06 #Python
tensorflow TFRecords文件的生成和读取的方法
Feb 06 #Python
You might like
php入门学习知识点三 PHP上传
2011/07/14 PHP
PHP类的反射用法实例
2014/11/03 PHP
PHP把MSSQL数据导入到MYSQL的方法
2014/12/27 PHP
PHP7新特性foreach 修改示例介绍
2016/08/26 PHP
谈谈php对接芝麻信用踩的坑
2016/12/01 PHP
PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
2018/06/16 PHP
PHP删除数组中指定值的元素常用方法实例分析【4种方法】
2018/08/21 PHP
扩展jQuery 键盘事件的几个基本方法
2009/10/30 Javascript
JavaScript学习笔记之获取当前目录的实现代码
2010/12/14 Javascript
设置iframe的document.designMode后仅Firefox中其body.innerHTML为br
2012/02/27 Javascript
基于jquery创建的一个图片、视频缓冲的效果样式插件
2012/08/28 Javascript
AngularJs实现ng1.3+表单验证
2015/12/10 Javascript
JS遍历对象属性的方法示例
2017/01/10 Javascript
jQuery插件HighCharts实现的2D堆条状图效果示例【附demo源码下载】
2017/03/14 Javascript
使用store来优化React组件的方法
2017/10/23 Javascript
Vue通过ref父子组件拿值方法
2018/09/12 Javascript
Vue商品控件与购物车联动效果的实例代码
2019/07/21 Javascript
[33:23]Secret vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python通过pil模块获得图片exif信息的方法
2015/03/16 Python
Python数据结构之栈、队列的实现代码分享
2017/12/04 Python
django初始化数据库的实例
2018/05/27 Python
Numpy 改变数组维度的几种方法小结
2018/08/02 Python
Python模拟浏览器上传文件脚本的方法(Multipart/form-data格式)
2018/10/22 Python
Python数据库小程序源代码
2019/09/15 Python
Tensorflow限制CPU个数实例
2020/02/06 Python
python3.7+selenium模拟淘宝登录功能的实现
2020/05/26 Python
python 利用opencv实现图像网络传输
2020/11/12 Python
Python中使用Selenium环境安装的方法步骤
2021/02/22 Python
Smallable英国家庭概念店:设计师童装及家居装饰
2017/07/05 全球购物
Python如何定义一个函数
2015/09/01 面试题
2014年教研室工作总结
2014/12/06 职场文书
裁员通知
2015/04/25 职场文书
2015初中团委工作总结
2015/07/28 职场文书
数据库的高级查询六:表连接查询:外连接(左外连接,右外连接,UNION关键字,连接中ON与WHERE的不同)
2021/04/05 MySQL
Python可变与不可变数据和深拷贝与浅拷贝
2022/04/06 Python
MySQL控制流函数(-if ,elseif,else,case...when)
2022/07/07 MySQL