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


Posted in Python onJune 23, 2020

说明

本实例能够监控聚划算的抢购按钮,在聚划算整点聚的时间到达时发出提醒(音频文件自己定义位置)并自动弹开页面(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实现通过代理服务器访问远程url的方法
Apr 29 Python
CentOS 7下Python 2.7升级至Python3.6.1的实战教程
Jul 06 Python
TensorFlow实现RNN循环神经网络
Feb 28 Python
pycharm中成功运行图片的配置教程
Oct 28 Python
python石头剪刀布小游戏(三局两胜制)
Jan 20 Python
Python调用Windows API函数编写录音机和音乐播放器功能
Jan 05 Python
解决torch.autograd.backward中的参数问题
Jan 07 Python
基于python实现微信好友数据分析(简单)
Feb 16 Python
Python命名空间namespace及作用域原理解析
Jun 05 Python
PySwarms(Python粒子群优化工具包)的使用:GlobalBestPSO例子解析
Apr 05 Python
pytorch查看网络参数显存占用量等操作
May 12 Python
自己搭建resnet18网络并加载torchvision自带权重的操作
May 13 Python
初探TensorFLow从文件读取图片的四种方式
Feb 06 #Python
用十张图详解TensorFlow数据读取机制(附代码)
Feb 06 #Python
Python实现matplotlib显示中文的方法详解
Feb 06 #Python
Python实现自动上京东抢手机
Feb 06 #Python
Python获取指定文件夹下的文件名的方法
Feb 06 #Python
TensorFlow如何实现反向传播
Feb 06 #Python
tensorflow TFRecords文件的生成和读取的方法
Feb 06 #Python
You might like
千呼万唤始出来,DOTA2勇士令状不朽宝藏Ⅱ现已推出
2020/08/25 DOTA
通过php快速统计某个数据库中每张表的数据量
2012/09/04 PHP
PHP简单的MVC框架实现方法
2015/12/01 PHP
php统计数组不同元素的个数的实例方法
2019/09/26 PHP
php模拟post提交请求调用接口示例解析
2020/08/07 PHP
jquery1.5.1中根据元素ID获取元素对象的代码
2011/04/02 Javascript
jquery bind(click)传参让列表中每行绑定一个事件
2014/08/06 Javascript
javascript中判断json的方法总结
2015/08/27 Javascript
jQuery事件绑定用法详解(附bind和live的区别)
2016/01/19 Javascript
基于JavaScript代码实现自动生成表格
2016/06/15 Javascript
Javascript类型系统之String字符串类型详解
2016/06/21 Javascript
vue.js中$watch的用法示例
2016/10/04 Javascript
javascript简易画板开发
2020/04/12 Javascript
微信小程序 缓存(本地缓存、异步缓存、同步缓存)详解
2017/01/17 Javascript
Vue.js常用指令的使用小结
2017/06/23 Javascript
ComboBox(下拉列表框)通过url加载调用远程数据的方法
2017/08/06 Javascript
vue element自定义表单验证请求后端接口验证
2019/12/11 Javascript
[47:42]完美世界DOTA2联赛PWL S2 GXR vs Ink 第一场 11.19
2020/11/20 DOTA
Python中字典(dict)和列表(list)的排序方法实例
2014/06/16 Python
举例详解Python中threading模块的几个常用方法
2015/06/18 Python
numpy实现合并多维矩阵、list的扩展方法
2018/05/08 Python
pandas 读取各种格式文件的方法
2018/06/22 Python
简单谈谈python基本数据类型
2018/09/26 Python
Python使用gRPC传输协议教程
2018/10/16 Python
python正则-re的用法详解
2019/07/28 Python
将python安装信息加入注册表的示例
2019/11/20 Python
导致python中import错误的原因是什么
2020/07/01 Python
keras中epoch,batch,loss,val_loss用法说明
2020/07/02 Python
Python操作Word批量生成合同的实现示例
2020/08/28 Python
python 将列表里的字典元素合并为一个字典实例
2020/09/01 Python
入党自荐书范文
2014/03/09 职场文书
《充气雨衣》教学反思
2014/04/07 职场文书
公司任命书模板
2014/06/06 职场文书
毕业生银行实习自我鉴定
2014/10/14 职场文书
Unicode中的CJK(中日韩统一表意文字)字符小结
2021/12/06 HTML / CSS
MySQL数据库查询之多表查询总结
2022/08/05 MySQL