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 -* ...
随机推荐
- shell遍历文件
取文件每行的数据,需要按列取 可以 sed 加管道 使用 awk 取列 platform="list.txt" line=`grep -vc '^$' $platform` ; ...
- 网络虚拟化基础协议·Geneve
[分层] 要实现网络虚拟化,最基础的技术肯定是分层(OverLay & UnderLay). ·UnderLay 中文释义中,老房子漏雨,在房子里面撑一把大雨伞,这把大雨伞就是UnderLay ...
- Python Day_1
听说Python很6,然后我的偶像小甲鱼竟然在6年前(现在2019年)就开始制作Python的教程,而前不久(世界读书日前一个星期左右),京东有活动,小甲鱼的Python第一版本打折,顺便买了本(还凑 ...
- 图片去水印工具:Inpaint 7.2中文专业破解版下载及使用方法
下载地址: 点我 Inpaint 是一款可以从图片上去除不必要的物体,让您轻松摆脱照片上的水印.划痕.污渍.标志等瑕疵的实用型软件:简单说来,Inpaint 就是一款强大实用的图片去水印软件,您的图片 ...
- Android安卓书籍推荐《Android驱动开发与移植实战详解》下载
百度云下载地址:点我 Android凭借其开源性.优异的用户体验和极为方便的开发方式,赢得了广大用户和开发者的青睐,目前已经发展成为市场占有率很高的智能手机操作系统. <Android驱动开发与 ...
- Kubernetes1.15 部署 coredns
coredns.yaml文件如下所示 # __MACHINE_GENERATED_WARNING__ apiVersion: v1 kind: ServiceAccount metadata: nam ...
- Django工程的分层结构
前言 传统上我们都知道在Django中的MTV模式,具体内容含义我们再来回顾一下: M:是Model的简称,它的目标就是通过定义模型来处理和数据库进行交互,有了这一层或者这种类型的对象,我们就可以通过 ...
- HTML表单部分学习笔记
第一部分: <!-- action :指定处理提交表单的格式 method :指定提交表单的http方法 enctype:指明用来把表单提交给服务器时的互联网媒体形式 --> <fo ...
- 【题解】射击-C++
Description 不难发现,豆豆能从很多事情中去思考数学,于是豆豆父母决定让他去练习射击,这是项需要集中注意力的运动,相信 能够让豆豆暂时脱离数学.学习射击的第一天就让豆豆产生 了浓厚的兴趣,射 ...
- SSRS报表-级联筛选参数刷新后不能默认全选 -问题解决方案
好久没有写博客了,最近更新完善修复了SSRS报表的一些问题,和大家分享. 问题描述: 报表中,区域->专区->省份->地级市 此四个筛选参数是联动的,在DataSet中前一父级参数作 ...