说明

本实施例可以监视一起购买的成本button,当警报济济一堂花费时间整点到达(音频文件自定义位置)而自己主动跳出页面(URL习惯)。

同一时候还能够通过命令行參数自己定义刷新间隔时间(默认0.1s)和监控持续时间(默认1800s)。

源代码

  1. # encoding: utf-8
  2. '''
  3. @author: Techzero
  4. @email: techzero@163.com
  5. @time: 2014-5-18 下午5:06:29
  6. '''
  7. import cStringIO
  8. import getopt
  9. import time
  10. import urllib2
  11. import subprocess
  12. import sys
  13.  
  14. from datetime import datetime
  15.  
  16. MEDIA_PLAYER = 'C:/Program Files/Windows Media Player/wmplayer.exe'
  17. MEDIA_FILE = 'D:/notify.mp3'
  18. CHROME = 'C:/Program Files (x86)/Google/Chrome/Application/chrome.exe'
  19. URL = 'http://detail.ju.taobao.com/home.htm?spm=608.2214381.2.1.SY0wVT&item_id=16761325430&id=10000002801432'
  20. NO_X11 = False
  21.  
  22. def get_current_button():
  23. '''获取当前按钮状态'''
  24. content = urllib2.urlopen(URL).read() #获取页面内容
  25.  
  26. buf = cStringIO.StringIO(content.decode('gbk').encode('utf8')) #将页面内容转换为输入流
  27. current_button = None
  28. for line in buf:
  29. line = line.strip(' \n\r') #去掉回车换行
  30.  
  31. if line.find(r'<a href="#" class="extra notice J_BuyButtonSub">开团提醒</a>') != -1:
  32. current_button = '开团提醒'
  33. break
  34. elif line.find(r'<div class="main-box chance ">') != -1:
  35. current_button = '还有机会'
  36. break
  37. elif line.find(r'<span class="out floatright">卖光了...</span>') != -1:
  38. current_button = '卖光了'
  39. break
  40. elif line.find(r'<span class="out floatright">已结束...</span>') != -1:
  41. current_button = '已结束'
  42. break
  43. elif line.find(r'<input type="submit" class="buyaction J_BuySubmit" title="立即抢" value="立即抢"/>') != -1:
  44. current_button = '立即抢'
  45. break
  46.  
  47. buf.close()
  48. return current_button
  49.  
  50. def notify():
  51. '''发出通知并用Chrome打开秒杀页面'''
  52. subprocess.Popen([MEDIA_PLAYER, MEDIA_FILE])
  53. if not NO_X11:
  54. subprocess.Popen([CHROME, URL])
  55. print '打开页面'
  56.  
  57. def monitor_button(interval, last):
  58. '''開始监视按钮'''
  59. elapse = 0
  60. while elapse < last:
  61. current_button = get_current_button()
  62.  
  63. now = datetime.now()
  64. print '%d-%d-%d %d:%d:%d - 如今按钮是 %s' % (now.year, now.month, now.day, now.hour, now.minute, now.second, current_button)
  65.  
  66. if current_button == '立即抢' or current_button == '还有机会':
  67. print '赶紧抢购!'
  68. notify()
  69. break
  70. elif current_button == '卖光了' or current_button == '已结束':
  71. print '下次再试吧。'
  72. break
  73. else:
  74. print '还没開始呢,再等等吧!'
  75.  
  76. time.sleep(interval)
  77. elapse += interval
  78.  
  79. def usage():
  80. print '''
  81. usage: monitor_mac_price.py [options]
  82.  
  83. Options:
  84. -i interval: 30 seconds by default.
  85. -l last: 1800 seconds by default.
  86. -h: Print this usage.
  87. -X: Run under no X11.
  88. '''
  89.  
  90. if __name__ == '__main__':
  91. try:
  92. opts, args = getopt.getopt(sys.argv[1:], 'i:l:hX')
  93. except getopt.GetoptError, err:
  94. print str(err)
  95. sys.exit(1)
  96.  
  97. interval = 0.1
  98. last = 1800
  99.  
  100. for opt, val in opts:
  101. if opt == '-i':
  102. interval = int(val)
  103. elif opt == '-l':
  104. last = int(val)
  105. elif opt == '-X':
  106. NO_X11 = True
  107. elif opt == '-h':
  108. usage()
  109. sys.exit()
  110.  
  111. monitor_button(interval, last)

版权声明:本文博客原创文章。博客,未经同意,不得转载。

Python 实现 淘宝秒杀 聚划算 自己主动提醒 源代码的更多相关文章

  1. Java 实现 淘宝秒杀 聚划算 自己主动提醒 源代码

    说明 本实例可以监控聚划算的抢购button,在聚划算整点聚的时间到达时自己主动弹开页面(URL自定义). 能够自己定义监控持续分钟数,同一时候还能够通过多线程加快刷新速度. 源代码 package ...

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

    快来加入群[python爬虫交流群](群号570070796),发现精彩内容. 本实例能够监控聚划算的抢购按钮,在聚划算整点聚的时间到达时发出提醒(音频文件自己定义位置)并自动弹开页面(URL自己定义 ...

  3. python课件-淘宝-目录.txt

    卷 TOSHIBA EXT 的文件夹 PATH 列表卷序列号为 AE86-8E8DF:.│ python课件-淘宝-目录.txt│ ├─01python核心编程阶段-linux基础(│ linux_h ...

  4. python3.4学习笔记(二十三) Python调用淘宝IP库获取IP归属地返回省市运营商实例代码

    python3.4学习笔记(二十三) Python调用淘宝IP库获取IP归属地返回省市运营商实例代码 淘宝IP地址库 http://ip.taobao.com/目前提供的服务包括:1. 根据用户提供的 ...

  5. 淘宝数据库OceanBase SQL编译器部分 源代码阅读--Schema模式

    淘宝数据库OceanBase SQL编译器部分 源代码阅读--Schema模式 什么是Database,什么是Schema,什么是Table,什么是列,什么是行,什么是User?我们能够能够把Data ...

  6. 淘宝数据库OceanBase SQL编译器部分 源代码阅读--生成物理查询计划

    SQL编译解析三部曲分为:构建语法树,制定逻辑计划,生成物理运行计划. 前两个步骤请參见我的博客<<淘宝数据库OceanBase SQL编译器部分 源代码阅读--解析SQL语法树>& ...

  7. 淘宝数据库OceanBase SQL编译器部分 源代码阅读--生成逻辑计划

    淘宝数据库OceanBase SQL编译器部分 源代码阅读--生成逻辑计划 SQL编译解析三部曲分为:构建语法树.生成逻辑计划.指定物理运行计划. 第一步骤,在我的上一篇博客淘宝数据库OceanBas ...

  8. python推荐淘宝物美价廉商品

    完成的目标: 输入搜索的商品 以及 淘宝的已评价数目.店铺的商品描述(包括如实描述.服务态度.快递的5.0打分): 按要求,晒选出要求数量的结果,并按"物美价廉算法"排序后输出 思 ...

  9. python推荐淘宝物美价廉商品 2.0

    改动: 新增功能 :可选择只看天猫或淘宝 代码模块化封装,参数配置或输入单独在一个py文件管理,主函数功能只留出参数传入在setting配置的py文件里. main.py代码: # -*- codin ...

随机推荐

  1. 细说CSS伪类和伪元素

    原文 简书原文:https://www.jianshu.com/p/eae56b7fe7fe 大纲 1.伪元素 2.伪类元素 3.伪元素和伪类元素的区别 4.伪类和伪元素的使用 1.伪元素 伪元素在D ...

  2. angular表单知识点

    原文 https://www.jianshu.com/p/c772d143e1fc 大纲 1.对表单的理解 2.模板驱动表单(Template Driven Forms) 3.响应式表单(Reacti ...

  3. [D3] Load and Inspect Data with D3 v4

    You probably use a framework or standalone library to load data into your apps, but what if that’s o ...

  4. [Elm] Installing and setting up Elm

    Before writing any Elm we need to first install the runtime locally. In this lesson we install the E ...

  5. http各种状态码具体解释

    1XX (暂时响应)   100(继续) 请求者应当继续提出请求.   101(切换协议)请求者已要求server切换协议,server已确认并准备切换 2XX(成功)    ·200(成功) ser ...

  6. IT增值服务客户案例(二):河南郑州大四实习生,职业规划和项目开发指导

    客户整体情况,河南郑州大四在校学生,目前在企业实习,从事Java开发工作.有一定的项目开发经验,对Java周边技术有基本的理解. 客户购买的是"拜师学艺"服务,按月付款. 经过多次 ...

  7. js匿名自执行函数

    匿名自执行函数:没有方法名的函数闭包:闭包是指有权访问另一个函数作用域变量的函数: 通过一个实例来解释: 从网上找到了一个案例,使用了for循环.匿名自执行函数.setTimeout. 案例1: va ...

  8. android获取和展示音乐的频谱

    做了个音乐播放器 就一直想做个加一个音乐频谱的展示界面 觉的这是一个好玩的东西,可以将耳边动听的声音形象化,仿佛眼前可以看到声音一样. 但是我在文档的开发者指南里没有讲任何有关音乐频谱的东西,最后还是 ...

  9. Oracle数据库零散知识06 -- Package的定义与简单触发器

    CREATE OR REPLACE PACKAGE pak_02 IS--包头 --这里可定义公共参数 FUNCTION fun_01 RETURN NUMBER; PROCEDURE pro_01 ...

  10. HDU 1422 重温世界杯 - 贪心

    传送门 题目大意: 给一串数,又正有负,求每一个前缀都大于0的最长子串长度. 题目分析: 直接贪心:每次左端点向右推1,不断延伸右端点,更新答案. code #include<bits/stdc ...