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

说明

本实例能够监控聚划算的抢购按钮,在聚划算整点聚的时间到达时发出提醒(音频文件自己定义位置)并自动弹开页面(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'<a href="#" rel="external nofollow" class="extra notice J_BuyButtonSub">开团提醒</a>') != -1:
      current_button = '开团提醒'
      break
    elif line.find(r'<div class="main-box chance ">') != -1:
      current_button = '还有机会'
      break
    elif line.find(r'<span class="out floatright">卖光了...</span>') != -1:
      current_button = '卖光了'
      break
    elif line.find(r'<span class="out floatright">已结束...</span>') != -1:
      current_button = '已结束'
      break
    elif 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])
  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) 

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

您可能感兴趣的文章:

  • Python 实现淘宝秒杀的示例代码
  • python+selenium实现京东自动登录及秒杀功能
  • Python实现自动上京东抢手机
  • Python 12306抢火车票脚本 Python京东抢手机脚本
  • Python动刷新抢12306火车票的代码(附源码)
  • 手把手教你用python抢票回家过年(代码简单)
  • 100行Python代码实现自动抢火车票(附源码)
  • 使用Python+Splinter自动刷新抢12306火车票
  • 用Python抢过年的火车票附源码
  • Python(Tornado)模拟登录小米抢手机
(0)

相关推荐

  • 手把手教你用python抢票回家过年(代码简单)

    首先看看如何快速查看剩余火车票? 当你想查询一下火车票信息的时候,你还在上12306官网吗?或是打开你手机里的APP?下面让我们来用Python写一个命令行版的火车票查看器, 只要在命令行敲一行命令就能获得你想要的火车票信息!如果你刚掌握了Python基础,这将是个不错的小练习. 接口设计 一个应用写出来最终是要给人使用的,哪怕只是给你自己使用.所以,首先应该想想你希望怎么使用它?让我们先给这个小应用起个名字吧,既然及查询票务信息,那就叫它tickets好了.我们希望用户只要输入出发站,到达站以

  • 使用Python+Splinter自动刷新抢12306火车票

    一年一度的春运又来了,今年我自己写了个抢票脚本.使用Python+Splinter自动刷新抢票,可以成功抢到.(依赖自己的网络环境太厉害,还有机器的好坏) Splinter是一个使用Python开发的开源Web应用测试工具,它可以帮你实现自动浏览站点和与其进行交互,Splinter执行的时候会自动打开你指定的浏览器,访问指定的URL.然后你所开发的模拟的任何行为,都会自动完成,你只需要坐在电脑面前,像看电影一样看着屏幕上各种动作自动完成然后收集结果即可. 12306抢票Python代码片段 1.

  • Python(Tornado)模拟登录小米抢手机

    今天看到同事参与小米的抢购,几经数个星期的尝试,终于抢到了一台小米电视--看了一下小米的抢购流程,似乎可以用程序可破.于是想写点东西玩玩(你懂的--),第一步肯定是先得模拟登录小米帐号,当练手吧.用 Python 来实现吧,由于是写一个Web应用,那么框架就选 Tornado.首先是定义应用的 URL: 复制代码 代码如下: def main():    tornado.options.parse_command_line()    application = tornado.web.Appli

  • Python 12306抢火车票脚本 Python京东抢手机脚本

    本文实现12306抢火车票/京东抢手机示例,具体如下: #12306秒抢Python代码 from splinter.browser import Browser x = Browser(driver_name="chrome") url = "https://kyfw.12306.cn/otn/leftTicket/init" x = Browser(driver_name="chrome") x.visit(url) #填写登陆账户.密码 x

  • Python 实现淘宝秒杀的示例代码

    新手学习Python,之前在网上看见一位朋友写的40行Python代码搞定京东秒杀,想在淘宝上帮女朋友抢玩偶,所以就照猫画虎的写了下淘宝的秒杀脚本,经自己实验可行.直接上代码: #-*- coding: UTF-8 -*- import os from selenium import webdriver import datetime import time chromedriver = "/usr/bin/chromedriver" os.environ["webdrive

  • Python动刷新抢12306火车票的代码(附源码)

    用python另一个抢票神器,你get到了吗? 2017年时间飞逝,转眼间距离2018年春节还有不到1个月的时间,还在为抢不到火车票发愁吗?作为程序员的我们撸一个抢票软件可好? 难以想象的数据,预示着今年春运回程和返程车票 购买难度将进一步加大- 抢购车票怕是比李白跨越"蜀道"的难度还大哦~ 当你想查询一下火车票信息的时候,还在为打开无响应的12306官网和广告n秒的APP吗而懊恼吗? 不如用 Python 写一个命令行版的火车票查看器, 只要在命令行敲一行命令就能获得你想要的火车票信

  • 用Python抢过年的火车票附源码

    前言:大家跟我一起念,Python大法好,跟着本宝宝用Python抢火车票 首先我们需要splinter 安装: pip install splinter -i http://pypi.douban.com/simple --trusted-host pypi.douban.com 然后还需要一个浏览器的驱动,当然用chrome啦 下载地址: http://chromedriver.storage.googleapis.com/index.html?path=2.20/ 根据下载的自己的电脑系统

  • Python实现自动上京东抢手机

    本文实例为大家分享了Python自动上京东抢手机的具体代码,供大家参考,具体内容如下 上次抢荣耀V9,被京东给恶心到了,所以就写了个简单的Python来自动抢V9.虽然用的是比较蠢的方法,但觉得还是有可以学习的地方.所以在这里把代码贴出来给大家看看. # -*- coding: UTF-8 -*- from splinter.browser import Browser import time def login(b): b.click_link_by_text("账户登录") tim

  • 100行Python代码实现自动抢火车票(附源码)

    前言 又要过年了,今年你不妨自己写一段代码来抢回家的火车票,是不是很Cool.下面话不多说了,来一起看看详细的介绍吧. 先准备好: 12306网站用户名和密码 chrome浏览器及下载chromedriver 下载Python代码,来自网络整理 [点击下载 |  本地下载 ] 代码用的Python+Splinter开发,Splinter是一个使用Python开发的开源Web应用测试工具,它可以帮你实现自动浏览站点和与其进行交互. Splinter官网:http://splinter.readth

  • python+selenium实现京东自动登录及秒杀功能

    本文实例为大家分享了selenium+python京东自动登录及秒杀的代码,供大家参考,具体内容如下 运行环境: python 2.7 python安装selenium 安装webdriver(这里是firefox) 其中selenium可以采用pip安装: pip install selenium webdriver下载地址 需要注意的是,webdriver的目录.对应浏览器的目录,都要添加到path. 代码如下: # _*_coding:utf-8_*_ from selenium impo

随机推荐