iT程序人生

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

2018-01-30  本文已影响189人  疯狂的程序猿丶

说明

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

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

源码

# encoding: utf-8'''@author: Techzero@email: techzero@163.com@time: 2014-5-18 下午5:06:29'''import cStringIOimport getoptimport timeimport urllib2import subprocessimport sysfrom datetime import datetimeMEDIA_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 = Falsedef 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_buttondef 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 += intervaldef 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学习群:593088321

上一篇 下一篇

猜你喜欢

热点阅读