python 获取大乐透中奖结果
实现思路:
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 获取大乐透中奖结果的更多相关文章
- python模拟双色球大乐透生成算法
每天练习一段python代码,健康生活一辈子.晚上下班没事,打开电脑继续编写python代码!今天分享的一个是大家熟悉的双色球彩票的游戏,根据这个进行写的一个python算法,代码精简,肯定有bug, ...
- python—模拟生成双色球号和大乐透号
下边这个脚本,比较适合初级学习基本python语法用.但是,不精炼建议可参考https://www.cnblogs.com/Formulate0303/p/14031748.html的写法. 大乐透玩 ...
- Python生成随机验证码,大乐透号码
实例笔记之生成随机号码 扩展知识 - yield(生成器) 随机生成验证码 示例代码: import random # 导入标准模块中的random if __name__ == '__main__' ...
- Python实现双色球和大乐透摇奖
实现代码: # code by kadycui # 模块引用 import random def select(): print('\n') print('请选择彩票种类') print('双色球输入 ...
- 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(): #生成随机大 ...
- python 写一个生成大乐透号码的程序
""" 写一个生成大乐透号码的程序 生成随机号码:大乐透分前区号码和后区号码, 前区号码是从01-35中无重复地取5个号码, 后区号码是从01-12中无重复地取2个号码, ...
- 大乐透 Java随机码
package suijishu; import java.util.Random; // TODO Auto-generated method stub public class Xuanqi { ...
- c语言实现双色球和大乐透
头文件: #include<stdio.h> #include <stdlib.h> #include<string.h> #include <time.h& ...
- python简易的大乐透数据获取及初步分析
该项目从网上爬取并分析彩票数据,为用户查看和初步分析往期数据提供一种简易的工具. https://github.com/unknowcry/Lottery # -*- coding: utf-8 -* ...
随机推荐
- 跟我学SpringCloud | 第七篇:Spring Cloud Config 配置中心高可用和refresh
SpringCloud系列教程 | 第七篇:Spring Cloud Config 配置中心高可用和refresh Springboot: 2.1.6.RELEASE SpringCloud: Gre ...
- Web Scraper 翻页——控制链接批量抓取数据
 这是简易数据分析系列的第 5 ...
- 分享SQL,查询用户最近一次购买时间间隔
(1)先创建一张测试表: CREATE TABLE `用户购买订单` ( `购买时间` datetime(6) NULL DEFAULT NULL, `用户` varchar(20) CHARACTE ...
- Python基础-使用range创建数字列表以及简单的统计计算和列表解析
1.使用函数 range() numbers = list(range[1,6]) print (numbers) 结果: [1,2,3,4,5] 使用range函数,还可以指定步长,例如,打印1~1 ...
- 设计模式-抽象工厂模式(AbstractFactory)
抽象工厂模式是向客户端提供一个接口(FruitFactory),,使得客户端在不必指定产品的具体类型的情况下,能够创建多个产品族(NorthFruit.SouthFruit)的产品对象. 角色和职责: ...
- flask请求上下文 (转)
本篇阅读目录 一.flask中的CBV 二.werkzeug + 上下文初步解读 三.偏函数和线程安全 回到顶部 一.flask中的CBV 对比django中的CBV,我们来看一下flask中的CBV ...
- Python Day_2
入门任何一门编程语言,前面总是离不开变量,字符串这些概念,而且这些东西在往后的日子里,有着至关重要的存在.因为不管我们写什么程序,都要用到变量以及字符串. 变量 首先,我们的变量在定义的时候,是不需要 ...
- 利用Jmeter模拟Github登录
最近学习了Jmeter的简单操作,很想找点东西来实战一下,因为我之前写过一篇通过Python模拟登录的文章,于是便想尝试下学习通过Jmeter来模拟登录. 本人环境:Jmeter5.1.1 关于Git ...
- Java设计模式学习笔记(二) 简单工厂模式
前言 本篇是设计模式学习笔记的其中一篇文章,如对其他模式有兴趣,可从该地址查找设计模式学习笔记汇总地址 正文开始... 1. 简介 简单工厂模式不属于GoF23中设计模式之一,但在软件开发中应用也较为 ...
- Java 垃圾收集总结
概述 垃圾收集(Garbage Collection,GC),它不是Java语言的伴生产物,它的历史比Java还要久远. 人们主要思考GC需要完成的3件事情: 哪些内存需要回收? 什么时候回收? 如何 ...