首页 > 编程 > Python > 正文

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

2020-01-04 15:56:40
字体:
来源:转载
供稿:网友

说明

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持VEVB武林网。


注:相关教程知识阅读请移步到python教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表