zoukankan      html  css  js  c++  java
  • Python实现淘宝秒杀聚划算自动提醒源码

    快来加入群【python爬虫交流群】(群号570070796),发现精彩内容。

    本实例能够监控聚划算的抢购按钮,在聚划算整点聚的时间到达时发出提醒(音频文件自己定义位置)并自动弹开页面(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 =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'<a href="#" class="extra  notice J_BuyButtonSub">开团提醒</a>') != -1:
                current_button ='开团提醒'breakelif line.find(r'<div class="main-box chance ">')!=-1:
                current_button ='还有机会'breakelif line.find(r'<span class="out floatright">卖光了...</span>')!=-1:
                current_button ='卖光了'breakelif line.find(r'<span class="out floatright">已结束...</span>')!=-1:
                current_button ='已结束'breakelif 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])ifnot NO_X11:
            subprocess.Popen([CHROME, URL])print'打开页面'def monitor_button(interval, last):'''开始监视按钮'''
        elapse =0while 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()breakelif current_button =='卖光了'or current_button =='已结束':print'下次再试吧!'breakelse: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 =1800for opt, val in opts:if opt =='-i':
                interval = int(val)elif opt =='-l':
                last = int(val)elif opt =='-X':
                NO_X11 =Trueelif opt =='-h':
                usage()
                sys.exit()
    
        monitor_button(interval, last)

    Python原创源码

    快来加入群【python爬虫交流群】(群号570070796),发现精彩内容。

    本站文章除注明转载外均为原创,版权为Techzero所有,转载请务必注明原文链接。
    本文固定链接:http://www.itechzero.com/python-implementation-taobao-spike-and-juhuasuan-automatic-reminder-source.html
  • 相关阅读:
    Xcode7.x中安装Alcatraz
    iOS开发:一个无限滚动自动播放图片的Demo(Swift语言编码)
    ios开发:一个音乐播放器的设计与实现
    iOS开发:深入理解GCD 第二篇(dispatch_group、dispatch_barrier、基于线程安全的多读单写)
    iOS开发:XCTest单元测试(附上一个单例的测试代码)
    设计模式之构造者模式
    控制流程
    变量与常量定义
    go语言内置基础类型
    解决Win10 Virtualbox5.2.18桥接不能联网小记
  • 原文地址:https://www.cnblogs.com/qinjiting/p/5783968.html
Copyright © 2011-2022 走看看