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计算最小优先级队列代码分享
Dec 18 Python
从零学Python之入门(三)序列
May 25 Python
python之wxPython菜单使用详解
Sep 28 Python
Python中实现的RC4算法
Feb 14 Python
python实现矩阵乘法的方法
Jun 28 Python
Python中表达式x += y和x = x+y 的区别详解
Jun 20 Python
python3中函数参数的四种简单用法
Jul 09 Python
图文详解python安装Scrapy框架步骤
May 20 Python
python整合ffmpeg实现视频文件的批量转换
May 31 Python
tensorflow使用指定gpu的方法
Feb 04 Python
python进行二次方程式计算的实例讲解
Dec 06 Python
Python的flask接收前台的ajax的post数据和get数据的方法
Apr 12 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
虫族 ZERG 概述
2020/03/14 星际争霸
修改apache配置文件去除thinkphp url中的index.php
2014/01/17 PHP
CentOS 6.3下安装PHP xcache扩展模块笔记
2014/09/10 PHP
php实现base64图片上传方式实例代码
2017/02/22 PHP
kindeditor 加入七牛云上传的实例讲解
2017/11/12 PHP
微信公众号之主动给用户发送消息功能
2019/06/22 PHP
基于jquery的动态创建表格的插件
2011/04/05 Javascript
关于jquery性能最佳实践的讨论,与求教
2012/03/30 Javascript
原生Js实现元素渐隐/渐现(原理为修改元素的css透明度)
2013/06/24 Javascript
JavaScript修改css样式style动态改变元素样式
2013/12/16 Javascript
AngularJS ng-repeat数组有重复值的解决方法
2016/10/23 Javascript
jQuery实现广告条滚动效果
2017/08/22 jQuery
在Js页面通过POST传递参数跳转到新页面详解
2017/08/25 Javascript
30分钟快速入门掌握ES6/ES2015的核心内容(下)
2018/04/18 Javascript
jQuery实现的淡入淡出图片轮播效果示例
2018/08/29 jQuery
React传值 组件传值 之间的关系详解
2019/08/26 Javascript
浅谈pyhton学习中出现的各种问题(新手必看)
2017/05/17 Python
Python类的继承和多态代码详解
2017/12/27 Python
使用Python实现从各个子文件夹中复制指定文件的方法
2018/10/25 Python
Python搭建代理IP池实现获取IP的方法
2019/10/27 Python
Python 基于jwt实现认证机制流程解析
2020/06/22 Python
美国知名的旅游网站:OneTravel
2018/10/09 全球购物
英国二手iPhone、音乐、电影和游戏商店:musicMagpie
2018/10/26 全球购物
Feelunique德国官方网站:欧洲最大的在线美容零售商
2019/07/20 全球购物
HolidayLettings英国:预订最好的度假公寓、别墅和自助式住宿
2019/08/27 全球购物
100%法国制造的游戏和玩具:Les Jouets Français
2021/03/02 全球购物
专科毕业生自我鉴定
2013/12/01 职场文书
毕业生就业意向书
2014/04/01 职场文书
民族精神月活动总结
2014/08/28 职场文书
国家税务局干部作风整顿整改措施
2014/09/18 职场文书
小学语文复习计划
2015/01/19 职场文书
自我推荐信怎么写
2015/03/24 职场文书
人工作失职检讨书
2015/05/05 职场文书
入团申请书格式
2019/06/20 职场文书
导游词书写之黄山
2019/08/06 职场文书
mysql拆分字符串作为查询条件的示例代码
2022/07/07 MySQL