有意思的python入门脚本:自动校验双色球号码是否中奖并发邮件提示

本文介绍了使用Python编写的一个脚本,该脚本自动抓取双色球开奖号码,与预设号码比对,根据中奖规则判断是否中奖。若中奖,通过SMTP发送邮件通知。文章详细讲解了脚本的实现过程,包括爬虫、SMTP邮件发送以及单元测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景

因最近公司新项目需要用到python,学习之余突发奇想写一个脚本:自动校验双色球号码是否中奖,如果中奖给自己发邮件通知,非常适合长期购买固定彩票号码的同学,说干就干

准备

先去官网下载一个windows的python按照包,下载地址:https://www.python.org/downloads/windows/,下载下来正常安装就行,记得勾选下添加环境变量选项,省得自己手动配置;接下来还需要一个IDE:PyCharm,下载地址: https://www.jetbrains.com/pycharm/download/
在这里插入图片描述

分析

要校验是否中奖就必须的先知道开奖号码,如何知道,当然是去彩票网爬咯;爬到中奖号码之后和自己预先配置号的购买号码进行对比,根据中奖规则,计算是否中奖,中的几等奖;然后就是发邮件告诉自己中奖了,需要用到python的SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议;分析下来很简单嘛,实际写起来…更简单,这就是python…库的牛逼之处

配置邮箱

我这里用的qq邮箱,需要去如下图地方开启服务,并生成授权码,生成的授权码下面代码会用到
在这里插入图片描述

问题

其中爬虫需要用到的库beautifulsoup4没有,需要安装,安装命令:pip3 install beautifulsoup4,提示pip不是最新的,更新pip:python -m pip install --upgrade pip,然后再pip3 install beautifulsoup4

主体代码

下面直接上代码auto_judge_lottery.py

# -*- coding: utf-8 -*-

import urllib.error
import urllib.request
import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr
from bs4 import BeautifulSoup
import re

# 你购买的号码,蓝球放最后
buyNumber = [
    [2, 4, 12, 22, 29, 31, 1],
    [2, 4, 12, 22, 29, 31, 2],
]
my_sender = '********@qq.com'  # 发件人邮箱账号
my_pass = '********'  # 发件人邮箱密码,就是上图配置的授权码
my_user = '********@qq.com'  # 收件人邮箱账号,可以自己发给自己
base_url = "https://kaijiang.500.com/shtml/ssq/"  # 彩票网,用来爬取中奖号码


def ask_url(url):
    """
    得到指定一个URL的网页内容
    :param str url: url地址
    :return:
    """
    head = {
     # 模拟浏览器头部信息
        "User-Agent": "Mozilla / 5.0(Windows NT 10.0; Win64; x64) AppleWebKit / 537.36(KHTML, like Gecko) Chrome / 80.0.3987.122  Safari / 537.36"
    }
    request = urllib.request.Request(url, headers=head)
    html = ""
    try:
        response = urllib.request.urlopen(request)
        html = response.read().decode("utf-8", errors='ignore')
    except urllib.error.URLError as e:
        if hasattr(e, "code"):
            print(e.code)
        if hasattr(e, "reason"):
            print(e.reason)
    return html


def get_win_number(url):
    """
    爬取指定url网页获取开奖号码
    :param str url: url地址
    :return:
    """
    html = ask_url(url)
    soup = BeautifulSoup(html, "html.parser")
    find_red_ball = re.compile(r'<li class="ball_red">(.*?)</li>', re.S)  # 用来获取红球的正则
    find_blue_ball = re.compile(r'<li class="ball_blue">(.*?)</li>', re.S)  # 用来获取蓝球的正则

    item = soup.find_all('div', class_="ball_box01")[0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值