实现思路:

  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. 跟我学SpringCloud | 第七篇:Spring Cloud Config 配置中心高可用和refresh

    SpringCloud系列教程 | 第七篇:Spring Cloud Config 配置中心高可用和refresh Springboot: 2.1.6.RELEASE SpringCloud: Gre ...

  2. Web Scraper 翻页——控制链接批量抓取数据

    ![](https://image-1255652541.cos.ap-shanghai.myqcloud.com/images/20190708214014.png) 这是简易数据分析系列的第 5 ...

  3. 分享SQL,查询用户最近一次购买时间间隔

    (1)先创建一张测试表: CREATE TABLE `用户购买订单` ( `购买时间` datetime(6) NULL DEFAULT NULL, `用户` varchar(20) CHARACTE ...

  4. Python基础-使用range创建数字列表以及简单的统计计算和列表解析

    1.使用函数 range() numbers = list(range[1,6]) print (numbers) 结果: [1,2,3,4,5] 使用range函数,还可以指定步长,例如,打印1~1 ...

  5. 设计模式-抽象工厂模式(AbstractFactory)

    抽象工厂模式是向客户端提供一个接口(FruitFactory),,使得客户端在不必指定产品的具体类型的情况下,能够创建多个产品族(NorthFruit.SouthFruit)的产品对象. 角色和职责: ...

  6. flask请求上下文 (转)

    本篇阅读目录 一.flask中的CBV 二.werkzeug + 上下文初步解读 三.偏函数和线程安全 回到顶部 一.flask中的CBV 对比django中的CBV,我们来看一下flask中的CBV ...

  7. Python Day_2

    入门任何一门编程语言,前面总是离不开变量,字符串这些概念,而且这些东西在往后的日子里,有着至关重要的存在.因为不管我们写什么程序,都要用到变量以及字符串. 变量 首先,我们的变量在定义的时候,是不需要 ...

  8. 利用Jmeter模拟Github登录

    最近学习了Jmeter的简单操作,很想找点东西来实战一下,因为我之前写过一篇通过Python模拟登录的文章,于是便想尝试下学习通过Jmeter来模拟登录. 本人环境:Jmeter5.1.1 关于Git ...

  9. Java设计模式学习笔记(二) 简单工厂模式

    前言 本篇是设计模式学习笔记的其中一篇文章,如对其他模式有兴趣,可从该地址查找设计模式学习笔记汇总地址 正文开始... 1. 简介 简单工厂模式不属于GoF23中设计模式之一,但在软件开发中应用也较为 ...

  10. Java 垃圾收集总结

    概述 垃圾收集(Garbage Collection,GC),它不是Java语言的伴生产物,它的历史比Java还要久远. 人们主要思考GC需要完成的3件事情: 哪些内存需要回收? 什么时候回收? 如何 ...