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

339人浏览 / 0人评论

说明

本实例能够监控聚划算的抢购按钮,在聚划算整点聚的时间到达时发出提醒(音频文件自己定义位置)并自动弹开页面(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'开团提醒') != -1: 
      current_button = '开团提醒' 
      break 
    elif line.find(r'
') != -1: current_button = '还有机会' break elif line.find(r'卖光了...') != -1: current_button = '卖光了' break elif line.find(r'已结束...') != -1: current_button = '已结束' break elif line.find(r'') != -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)

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

全部评论

晴天下起了小雨
2017-10-01 18:00
很喜欢,果断关注了
wjmyly7336064
2017-10-01 18:00
相当实用,赞美了
橘大佬
2017-10-01 18:00
就是有些细节再到位点就好了…