python + urllib2 + re 江西快三当日期号及开奖结果

一、环境

    windows10+python27

二、需求:

    1、获取百宝彩网站中,江西快三当日的开奖期号和中奖号码;

    2、根据输入期号,输出开奖号码;

其实用BeautifulSoup是非常好实现的,但是使用re来过滤是一个提高自己的好机会~

三、上代码

#!/bin/env python
# coding=utf-8
"""
             ┏┓   ┏┓
            ┏┛┻━━━┛┻┓
            ┃   ☃   ┃
            ┃ ┳┛ ┗┳ ┃
            ┃   ┻   ┃
            ┗━┓   ┏━┛
              ┃      ┗━━━┓
              ┃  神兽保佑 ┣┓
              ┃ 永无BUG!┏┛
              ┗┓┓┏━┳┓┏┛
               ┃┫┫  ┃┫┫
               ┗┻┛  ┗┻┛
"""

import urllib2
import time
import re


class GetK3Issue:
    """
    获取百宝彩网站快三当日输入的期号
    """
    def __init__(self, url=0, page=0, sys_time=0):
        """
        初始化参数
        """
        self.url = url
        self.page = page
        self.sys_time = sys_time

    def get_url_page(self):
        """
        获取页面返回元素
        """
        self.sys_time = time.strftime('%Y-%m-%d', time.localtime(time.time()))
        self.url = 'http://www.baibaocp.com/ks/history/lotid/10412/date/%s' % self.sys_time
        self.page = urllib2.urlopen(self.url).read().decode('utf8')
        return self.page

    def get_issue(self):
        """
        从页面返回元素中提取开奖期号
        """
        issue_list = []
        page = self.get_url_page()
        RE = re.compile(ur'<tr num=\'\d{9}')
        element_list = re.findall(RE, page)
        for element in element_list:
            issue = str(element[9:18])
            issue_list.append(issue)
        return list(issue_list)

    def get_winning_numbers(self):
        """
        从页面返回元素中获取开奖号码
        """
        numbers_list = []
        group_numbers_list = []
        page = self.get_url_page()
        RE = re.compile(ur"class='history_drawnumber'><span>.*</span>")
        element_numbers_list = re.findall(RE, page)
        list_a = str(element_numbers_list)
        RE2 = re.compile(ur'\d{1}</span>')
        numbers_str = re.findall(RE2, list_a)
        for dangezhi in numbers_str:
            numbers = dangezhi[0]
            numbers_list.append(numbers)

        i = 0
        while True:
            j = i + 3
            winning_numbers = numbers_list[i:j]
            i = j
            if j >= len(numbers_list)+3:
                break
            group_numbers_list.append(winning_numbers)
        return group_numbers_list

    def result_dict(self):
        """
        合并期号和开奖号码列表,返回字典
        """
        issue = self.get_issue().__iter__()
        result = dict(zip(issue, self.get_winning_numbers()))
        return result

    def get_issue_by_dict(self):
        """
        通过输入期号查找开奖号码
        """
        input_issue = str(raw_input(u'请输入你想要查询的期号: '))
        result_list = self.result_dict()
        if input_issue in result_list:
            number = result_list[input_issue]
            print '今日第%s期开奖结果是:%s' % (input_issue, number)
        else:
            print '输入期号有误!!!'

if __name__ == '__main__':
    run = GetK3Issue()
    run.get_issue_by_dict()

 

转载于:https://my.oschina.net/medivhxu/blog/1186906

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值