qinjiting

 

快来加入群【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

分类:

技术点:

相关文章:

  • 2022-12-23
  • 2022-01-30
  • 2021-11-20
  • 2021-12-24
  • 2022-12-23
  • 2021-07-06
  • 2021-07-20
  • 2021-07-01
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2023-01-06
  • 2022-12-23
  • 2021-08-13
  • 2022-02-10
相关资源
相似解决方案