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实现批量把SVG格式转成png、pdf格式的代码分享
Aug 21 Python
Python定时执行之Timer用法示例
May 27 Python
python实现微信远程控制电脑
Feb 22 Python
在windows下Python打印彩色字体的方法
May 15 Python
python中单例常用的几种实现方法总结
Oct 13 Python
Python 窗体(tkinter)按钮 位置实例
Jun 13 Python
Django的models模型的具体使用
Jul 15 Python
详解PyTorch中Tensor的高阶操作
Aug 18 Python
Python lxml模块的基本使用方法分析
Dec 21 Python
在 Pycharm 安装使用black的方法详解
Apr 02 Python
jupyter notebook 使用过程中python莫名崩溃的原因及解决方式
Apr 10 Python
Python绘制动态水球图过程详解
Jun 03 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
PHP 使用pcntl和libevent 实现Timer功能
2013/10/27 PHP
PHP安装threads多线程扩展基础教程
2015/11/17 PHP
PHP5.3新特性小结
2016/02/14 PHP
PHP数组基本用法与知识点总结
2020/06/02 PHP
5 cool javascript apps
2007/03/24 Javascript
JavaScript函数的4种调用方法详解
2014/04/22 Javascript
js实现新浪微博首页效果
2015/10/16 Javascript
js老生常谈之this,constructor ,prototype全面解析
2016/04/05 Javascript
基于jQuery插件实现点击小图显示大图效果
2016/05/11 Javascript
jqPlot jQuery绘图插件的使用
2016/06/18 Javascript
如何用js实现鼠标向上滚动时浮动导航
2016/07/18 Javascript
jquery实现的回旋滚动效果完整实例【附demo源码下载】
2016/09/20 Javascript
JavaScript该如何学习 怎样轻松学习JavaScript
2017/06/12 Javascript
微信禁止下拉查看URL的处理方法
2017/09/28 Javascript
React Native 搭建开发环境的方法步骤
2017/10/30 Javascript
Nuxt.js开启SSR渲染的教程详解
2018/11/30 Javascript
解决antd日期选择组件,添加value就无法点击下一年和下一月问题
2020/10/29 Javascript
Vue使用Proxy代理后仍无法生效的解决
2020/11/13 Javascript
jQuery实现全选按钮
2021/01/01 jQuery
python中使用urllib2获取http请求状态码的代码例子
2014/07/07 Python
TensorFlow实现随机训练和批量训练的方法
2018/04/28 Python
Python3导入CSV文件的实例(跟Python2有些许的不同)
2018/06/22 Python
Python 处理图片像素点的实例
2019/01/08 Python
python tkinter canvas 显示图片的示例
2019/06/13 Python
opencv3/Python 稠密光流calcOpticalFlowFarneback详解
2019/12/11 Python
CSS3 分类菜单效果
2019/05/27 HTML / CSS
美容师的职业规划书
2013/12/27 职场文书
党风廉政承诺书
2014/03/27 职场文书
会议欢迎标语
2014/06/30 职场文书
高中美术教师事迹材料
2014/08/22 职场文书
我的职业生涯规划:打造自己的运动帝国
2014/09/18 职场文书
群众路线领导干部个人对照检查材料(集锦)
2014/09/23 职场文书
五一放假通知怎么写
2015/08/18 职场文书
《自己去吧》教学反思
2016/02/16 职场文书
python编写函数注意事项总结
2021/03/29 Python
thinkphp 获取控制器及控制器方法
2021/04/16 PHP