如何用python编写抢购程序源码_Python实现淘宝秒杀聚划算抢购自动提醒源码

说明

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

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

源码

# encoding: utf-8

'''''

@author: Techzero

@email: [email protected]

@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)

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值