实现思路:

  1.通过urllib库爬取http://zx.500.com/dlt/页面,并过滤出信息

  2.将自己的买的彩票的号与开奖号进行匹配,查询是否中奖

  3.将中奖结果发生到自己邮箱

caipiao.py  #获取最新一期彩票开奖结果

# -*- coding:utf- -*-
# @Time: -- :
import re
import urllib
import time
import sys
def get_winnum():
datapath = sys.path[]
datasuffix = 'txt'
if (len(sys.argv)>):
datapath = sys.argv[]
datasuffix = sys.argv[] def getHtml(url):
html = urllib.urlopen(url)
return html.read() html = getHtml("http://zx.500.com/dlt/") reg = ['<dt>([0-9]\d*).*</dt>']
reg.append('<li class="redball">([0-9]\d*)</li>')
reg.append('<li class="blueball">([0-9]\d*)</li>') outstr = "";
for i in range(len(reg)):
page = re.compile(reg[i])
rs = re.findall(page,html)
for j in range(len(rs)):
outstr+= rs[j] + "," #print time.strftime('%Y-%m-%d',time.localtime(time.time()))+":"+outstr[:-] with open(datapath+'/lot_500_dlt.'+datasuffix, 'a') as f:
f.write(time.strftime('%Y-%m-%d',time.localtime(time.time()))+":"+outstr[:-]+'\n') if __name__ == '__main__':
get_winnum()

sendmail.py  #发送邮件

# -*- coding:utf- -*-
# Author: xueminchao
# @Time: -- : import smtplib
from email.mime.text import MIMEText def mail(sub,cont):
sender = 'xxxx@qq.com' #发送人邮箱
passwd = "xxxx" #发送人邮箱授权码
receivers = 'xxxxxx@qq.com' #收件人邮箱 subject = sub#主题
content = cont #正文 msg = MIMEText(content,'plain','utf-8')
msg['Subject'] = subject
msg['From'] = sender
msg['TO'] = receivers
try:
s = smtplib.SMTP_SSL('smtp.qq.com',)
s.login(sender,passwd)
s.sendmail(sender,receivers,msg.as_string())
print('发送成功')
except Exception:
print('发送失败')
if __name__ == '__main__':
mail(subject,content)

query_win.py  #查询是否中奖

# -*- coding:utf- -*-
# Author:
# @Time: -- :
import os
import sys
import caipiao
import send_mail
def win_rules(num_list,last_results):
my_blue = num_list[:]
my_red = num_list[:]
result_blue = last_results[:]
result_red = last_results[:]
same_blue = [l for l in my_blue if l in result_blue]
same_red = [l for l in my_red if l in result_red ]
same_num_blue = len(same_blue)
same_num_red = len(same_red)
subject="大乐透中奖查询"
content="未中奖" #9等奖
if same_num_blue == and same_num_red == :
print("\033[1;31;0m你已经中了一等奖,中奖号码为 %s \033[0m" % num_list)
content = "你已经中了一等奖,中奖号码为 " + str(num_list)
elif same_num_blue == and same_num_red == :
print("\033[1;35;0m你已经中了二等奖,中奖号码为 %s \033[0m" % num_list) content = "你已经中了二等奖,中奖号码为 " + str(num_list)
elif same_num_blue == :
print("\033[1;33;0m你已经中了三等奖, 中奖号码为 %s \033[0m" % num_list)
content = "你已经中了三等奖,中奖号码为 " + str(num_list)
elif same_num_blue == and same_num_red == :
print("\033[1;32;0m你已经中了四等奖, 中奖号码为 %s \033[0m" % num_list)
content = "你已经中了四等奖,中奖号码为 " + str(num_list)
elif same_num_blue == and same_num_red == :
print("\033[1;32;0m你已经中了五等奖, 中奖号码为 %s \033[0m" % num_list)
content = "你已经中了一等奖,中奖号码为 " + str(num_list)
elif same_num_blue == and same_num_red == :
print("\033[1;34;0m你已经中了六等奖, 中奖号码为 %s\033[0m" % num_list)
content = "你已经中了六等奖,中奖号码为 " + str(num_list)
elif same_num_blue == :
print("\033[1;34;0m你已经中了七等奖, 中奖号码为 %s \033[0m" % num_list)
content = "你已经中了七等奖,中奖号码为 " + str(num_list)
elif (same_num_blue == and same_num_red == ) or (same_num_blue == and same_num_red == ):
print("\033[1;34;0m你已经中了八等奖, 中奖号码为 %s \033[0m " % num_list)
content = "你已经中了八等奖,中奖号码为 " + str(num_list)
elif (same_num_blue == and same_num_red == ) or (same_num_red == ) or (same_num_blue == and same_num_red == ):
print("\033[1;36;0m你已经中了九等奖, 中奖号码为 %s \033[0m " % num_list)
content = "你已经中了九等奖,中奖号码为 " + str(num_list)
else:
print("sorry,你没有中奖!!! ")
content = "未中奖"+ "本次开奖号码为"+ str(last_results)
send_mail.mail(subject, content) if __name__ == '__main__':
caipiao.get_winnum()
datepath = datapath = sys.path[]
fname="lot_500_dlt.txt"
fmy_num="my_num.txt"
with open(datapath+'/'+ fname,'r') as f:
lines = f.readlines() #读取所有行
last_line = lines[-].strip('\n')
#获取最新的彩票号码
last_results=last_line.split(",")[:]
#查询是否中奖,获取自己的号码
with open(datapath+'/'+ fmy_num,'r') as f:
lines= f.readlines()
for i in lines:
i=i.strip('\n')
num=i.split(',')
win_rules(num,last_results)

设置为定时任务

  * *  /usr/bin/python  /home/xmc/appl/caipiao/query_win.py  >  /dev/null >& &

说明:

  my_num.txt 是自己买的彩票号码存放位置,注意数字必须为两位数,并且以逗号分隔,每一组为一行

,,,,,,
,,,,,,
,,,,,,

参考

https://www.jianshu.com/p/a3ddf9333b3f

https://www.cnblogs.com/lizhe860/p/9079234.html

  

python 获取大乐透中奖结果的更多相关文章

  1. python模拟双色球大乐透生成算法

    每天练习一段python代码,健康生活一辈子.晚上下班没事,打开电脑继续编写python代码!今天分享的一个是大家熟悉的双色球彩票的游戏,根据这个进行写的一个python算法,代码精简,肯定有bug, ...

  2. python—模拟生成双色球号和大乐透号

    下边这个脚本,比较适合初级学习基本python语法用.但是,不精炼建议可参考https://www.cnblogs.com/Formulate0303/p/14031748.html的写法. 大乐透玩 ...

  3. Python生成随机验证码,大乐透号码

    实例笔记之生成随机号码 扩展知识 - yield(生成器) 随机生成验证码 示例代码: import random # 导入标准模块中的random if __name__ == '__main__' ...

  4. Python实现双色球和大乐透摇奖

    实现代码: # code by kadycui # 模块引用 import random def select(): print('\n') print('请选择彩票种类') print('双色球输入 ...

  5. 08 python学习笔记-随机生成大乐透号码(八)

    1 #产生大乐透号码 2 #前区 1-32,5 后区 1-12,2 3 #1.前区从1-32中级取5个,后区再从1-12里面取2个 4 #01 02 03 04 5 def dlt(): #生成随机大 ...

  6. python 写一个生成大乐透号码的程序

    """ 写一个生成大乐透号码的程序 生成随机号码:大乐透分前区号码和后区号码, 前区号码是从01-35中无重复地取5个号码, 后区号码是从01-12中无重复地取2个号码, ...

  7. 大乐透 Java随机码

    package suijishu; import java.util.Random; // TODO Auto-generated method stub public class Xuanqi { ...

  8. c语言实现双色球和大乐透

    头文件: #include<stdio.h> #include <stdlib.h> #include<string.h> #include <time.h& ...

  9. python简易的大乐透数据获取及初步分析

    该项目从网上爬取并分析彩票数据,为用户查看和初步分析往期数据提供一种简易的工具. https://github.com/unknowcry/Lottery # -*- coding: utf-8 -* ...

随机推荐

  1. shell遍历文件

    取文件每行的数据,需要按列取  可以 sed 加管道 使用 awk 取列 platform="list.txt" line=`grep -vc '^$' $platform` ; ...

  2. 网络虚拟化基础协议·Geneve

    [分层] 要实现网络虚拟化,最基础的技术肯定是分层(OverLay & UnderLay). ·UnderLay 中文释义中,老房子漏雨,在房子里面撑一把大雨伞,这把大雨伞就是UnderLay ...

  3. Python Day_1

    听说Python很6,然后我的偶像小甲鱼竟然在6年前(现在2019年)就开始制作Python的教程,而前不久(世界读书日前一个星期左右),京东有活动,小甲鱼的Python第一版本打折,顺便买了本(还凑 ...

  4. 图片去水印工具:Inpaint 7.2中文专业破解版下载及使用方法

    下载地址: 点我 Inpaint 是一款可以从图片上去除不必要的物体,让您轻松摆脱照片上的水印.划痕.污渍.标志等瑕疵的实用型软件:简单说来,Inpaint 就是一款强大实用的图片去水印软件,您的图片 ...

  5. Android安卓书籍推荐《Android驱动开发与移植实战详解》下载

    百度云下载地址:点我 Android凭借其开源性.优异的用户体验和极为方便的开发方式,赢得了广大用户和开发者的青睐,目前已经发展成为市场占有率很高的智能手机操作系统. <Android驱动开发与 ...

  6. Kubernetes1.15 部署 coredns

    coredns.yaml文件如下所示 # __MACHINE_GENERATED_WARNING__ apiVersion: v1 kind: ServiceAccount metadata: nam ...

  7. Django工程的分层结构

    前言 传统上我们都知道在Django中的MTV模式,具体内容含义我们再来回顾一下: M:是Model的简称,它的目标就是通过定义模型来处理和数据库进行交互,有了这一层或者这种类型的对象,我们就可以通过 ...

  8. HTML表单部分学习笔记

    第一部分: <!-- action :指定处理提交表单的格式 method :指定提交表单的http方法 enctype:指明用来把表单提交给服务器时的互联网媒体形式 --> <fo ...

  9. 【题解】射击-C++

    Description 不难发现,豆豆能从很多事情中去思考数学,于是豆豆父母决定让他去练习射击,这是项需要集中注意力的运动,相信 能够让豆豆暂时脱离数学.学习射击的第一天就让豆豆产生 了浓厚的兴趣,射 ...

  10. SSRS报表-级联筛选参数刷新后不能默认全选 -问题解决方案

    好久没有写博客了,最近更新完善修复了SSRS报表的一些问题,和大家分享. 问题描述: 报表中,区域->专区->省份->地级市 此四个筛选参数是联动的,在DataSet中前一父级参数作 ...