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

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

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

    说明 本实施例可以监视一起购买的成本button,当警报济济一堂花费时间整点到达(音频文件自定义位置)而自己主动跳出页面(URL习惯). 同一时候还能够通过命令行參数自己定义刷新间隔时间(默认0.1s ...

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

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

  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. C++、VC++、MFC网页自动注册、登陆、发帖、留言,QQ注册、QQ申请器源码、注册邮箱源码、自动发帖源码

    C++.VC++.MFC网页自动注册.登陆.发帖.留言,QQ注册.QQ申请器源码.注册邮箱源码.自动发帖源码   参考资料: 自动登录yahoo邮箱http://blog.csdn.net/suisu ...

  6. Android Studio2.x版本无法自动关联源码的解决方法

    Android Studio2.x版本无法自动关联源码的解决方法 在学习android开发过程中,对于一个不熟悉的类,阅读源码是一个很好的学习方式,使用andorid studio开发工具的SDK M ...

  7. SpringBoot自动配置源码调试

    之前对SpringBoot的自动配置原理进行了较为详细的介绍(https://www.cnblogs.com/stm32stm32/p/10560933.html),接下来就对自动配置进行源码调试,探 ...

  8. 使用 maven 自动将源码打包并发布

    1.maven-source-plugin 访问地址 在 pom.xml 中添加 下面的 内容,可以 使用 maven 生成 jar 的同时 生成 sources 包 <plugin> & ...

  9. Maven 自动下载源码和文档

    Maven下在pom中下载之后,如何才能使其自动下载源码和文档? 如果已经下载,可以先从Maven库中删除已经下载的代码,然后再update Maven项目即可

随机推荐

  1. python 基本数据类型之整数和布尔值

    #1. 当前整数的二进制表示,以最少位数 # age = # print(age.bit_length()) #2. 获取当前数据的字节表示 # age = # v = age.to_bytes(,b ...

  2. python 查询 elasticsearch 常用方法(Query DSL)

    1. 建立连接 from elasticsearch import Elasticsearch es = Elasticsearch(["localhost:9200"]) 2. ...

  3. SQL高度优化

      受同事dd之托,优化一条boss看的报表SQL.dd写复杂疑难SQL无数,如何写出优雅的SQL自有一番心得体会.能将一条7表含inner join,left join并含有关联子查询的.返回结果集 ...

  4. 2. 2.1查找命令——linux基础增强,Linux命令学习

    2.1.查找命令 grep命令 grep 命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并 把匹配的行打印出来. 格式: grep [option] pattern [file] 可使用 ...

  5. django基础知识之中间件:

    中间件 是一个轻量级.底层的插件系统,可以介入Django的请求和响应处理过程,修改Django的输入或输出 激活:添加到Django配置文件中的MIDDLEWARE_CLASSES元组中 每个中间件 ...

  6. c++ 逆序对

    c++ 求逆序对 例如数组(3,1,4,5,2)的逆序对有(3,1)(3,2)(4,2)(5,2)共4个 逆序对就是左边的元素比右边的大,那么左边的元素和右边的元素就能产生逆序对 代码跟归并排序差不多 ...

  7. 使用nexus搭建npm私服

    第一步,下载nexus 下载链接: https://pan.baidu.com/s/1GOYi2M3nT4Wcy7JEYmnqdA 提取码: a9hf 第二步,解压缩 我下载的是nexus-3.16. ...

  8. fastdfs java client error

    tracker,storage运行正常,利用fdfs_test程序做测试,可以正常上传下载文件. tracker的端口配置 # HTTP port on this tracker server htt ...

  9. 这样子来理解C语言中指针的指针

    友情提示:阅读本文前,请先参考我的之前的文章<从四个属性的角度来理解C语言的指针也许会更好理解>,若已阅读,请继续往下看. 我从4个属性的角度来总结了C语言中的指针概念.对于C语言的一个指 ...

  10. 自己实现IOC容器,java代码实现简易版IOC容器,IOC容器实现的步骤分解

    一.需求 实现一个简易的IOC容器,管理Bean,从IOC容器的BeanFactory中获取实例,从而取代自己new实例的做法. 二.实现步骤分析 三.具体代码实现 自定义注解类 MyComponen ...