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 相关文章推荐
Python3里的super()和__class__使用介绍
Apr 23 Python
Python 数据结构之旋转链表
Feb 25 Python
python实现机械分词之逆向最大匹配算法代码示例
Dec 13 Python
Python中的探索性数据分析(功能式)
Dec 22 Python
对numpy和pandas中数组的合并和拆分详解
Apr 11 Python
Django开发中的日志输出的方法
Jul 02 Python
详解用python自制微信机器人,定时发送天气预报
Mar 25 Python
Opencv-Python图像透视变换cv2.warpPerspective的示例
Apr 11 Python
pyinstaller参数介绍以及总结详解
Jul 12 Python
Python2.7:使用Pyhook模块监听鼠标键盘事件-获取坐标实例
Mar 14 Python
Python实现爬取网页中动态加载的数据
Aug 17 Python
详解python百行有效代码实现汉诺塔小游戏(简约版)
Oct 30 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获取金书网的书名的实现代码
2010/06/11 PHP
PHP中$_FILES的使用方法及注意事项说明
2014/02/14 PHP
PHP利用超级全局变量$_POST来接收表单数据的实例
2016/11/05 PHP
php实现多维数组排序的方法示例
2017/03/23 PHP
PHP $O00OO0=urldecode &amp; eval 解密,记一次商业源码的去后门
2020/09/13 PHP
js iframe跨域访问(同主域/非同主域)分别深入介绍
2013/01/24 Javascript
对table和ul实现js分页示例分享
2014/02/24 Javascript
jQuery产品间断向下滚动效果核心代码
2014/05/08 Javascript
jquery实现在网页指定区域显示自定义右键菜单效果
2015/08/25 Javascript
jquery实现文本框textarea自适应高度
2016/03/09 Javascript
js实现一个可以兼容PC端和移动端的div拖动效果实例
2016/12/09 Javascript
jQuery插件HighCharts绘制2D金字塔图效果示例【附demo源码下载】
2017/03/09 Javascript
vuejs实现本地数据的筛选分页功能思路详解
2017/11/15 Javascript
JS装饰器函数用法总结
2018/04/21 Javascript
微信小程序实现滑动翻页效果(完整代码)
2019/12/06 Javascript
微信小程序自定义模态弹窗组件详解
2019/12/24 Javascript
JavaScript async/await原理及实例解析
2020/12/02 Javascript
Python入门篇之面向对象
2014/10/20 Python
使用Python下载歌词并嵌入歌曲文件中的实现代码
2015/11/13 Python
基于Python Shell获取hostname和fqdn释疑
2016/01/25 Python
3分钟学会一个Python小技巧
2018/11/23 Python
Appium+Python自动化测试之运行App程序示例
2019/01/23 Python
python 魔法函数实例及解析
2019/09/25 Python
python import 上级目录的导入
2020/11/03 Python
日本最新流行服饰网购:Nissen
2016/07/24 全球购物
Boden美国官网:英伦原创时装品牌
2017/07/03 全球购物
生物有机护肤品:Aurelia Probiotic Skincare
2018/01/31 全球购物
aden + anais英国官网:美国婴儿贴身用品品牌
2019/09/08 全球购物
物业公司采购员岗位职责
2013/12/31 职场文书
捐献物资倡议书范文
2014/05/19 职场文书
沈阳故宫导游词
2015/01/31 职场文书
运动会观后感
2015/06/09 职场文书
Pytest之测试命名规则的使用
2021/04/16 Python
MySQL 角色(role)功能介绍
2021/04/24 MySQL
python利用pandas分析学生期末成绩实例代码
2021/07/09 Python
pandas数值排序的实现实例
2021/07/25 Python