离富豪仅差一步之遥!Python采集双色球数据,做数据分析

来唠点嗑?
咳咳,最近是咋的了,某站掀起了一股双色球热潮?一般我自己的账号上,是很少看到关于python这些内容的,都是小姐姐和热梗,或者其他搞笑视频

由于的吸引力…手不自觉的就点进去了,看了两分钟,emm不就是采集数据,做可视化分析吗,这我也会,至于能不能中奖,今晚下班买点看看,毕竟机会是留给有准备的人的,我准备一下午,总能分我点机会吧 ~
离富豪仅差一步之遥!Python采集双色球数据,做数据分析_第1张图片
来来来,宝宝们,好事都是要一起分享的,咱现在就开始看看如何实现富婆富豪梦

前期准备

  • 环境准备

python 3.6 pycharm requests >>> pip install requests win + R 输入cmd
然后点击确定 pip install requests 回车
csv

  • 代码实现过程

1.发送请求
headers请求头
cookies: 用户的信息 常用于检测是否有登录账号
host: 域名
referer: 防盗链 告诉服务器你请求的url地址 是从哪里来的(从哪里跳转过来的)
User-Agent : 浏览器的基本信息
作用: 把python代码伪装成浏览器对服务器发送请求,
服务器接收到请求,会给我们返回response响应体数据
2.获取数据
response.text 获取响应体的文本数据 (获取网页源代码)
response.json() 获取响应体的json字典数据 (动态网页)
response.content 获取响应体的二进制数据 保存 图片/视频/音频/特定格式的文件
3.解析数据
re正则表达式 / css选择器 / xpath
提取自己想要数据内容
4.保存数据
文本 / csv excel / 数据库 /

  • 数据分析编辑器:
    jupyter notebook
    1.你需要安装 和安装模块一样的 pip install jupyter notebook
    2.打开 在cmd输入 jupyter notebook
    离富豪仅差一步之遥!Python采集双色球数据,做数据分析_第2张图片

全部代码

import requests # 数据请求 第三方模块 pip install requests
import pprint # 格式化输出的模块  内置模块
import csv # 内置模块
f = open('双色球.csv', mode='a', encoding='utf-8', newline='')
csv_writer = csv.DictWriter(f, fieldnames=['期号',
                                '开奖日期',
                                '红球',
                                '蓝球',
                                '一等奖中奖注数',
                                '一等奖中奖金额',
                                '二等奖中奖注数',
                                '二等奖中奖金额',
                                '三等奖中奖注数',
                                '三等奖中奖金额',
                                '四等奖中奖注数',
                                '四等奖中奖金额',
                                '五等奖中奖注数',
                                '五等奖中奖金额',
                                '六等奖中奖注数',
                                '六等奖中奖金额',
                                '一等奖中奖地区',
                                '奖池金额'])


csv_writer.writeheader() # 写入表头
for page in range(1, 7):
    # 发送请求的url地址
    url = 'http://***/cwl_admin/kjxx/findDrawNotice'
    # 快速替换 1. 全部选中 2. ctrl + R 3. 通过正则语法进行匹配替换
    params = {
        'name': 'ssq',
        'issueCount': '',
        'issueStart': '',
        'issueEnd': '',
        'dayStart': '2017-10-24',
        'dayEnd': '2021-08-04',
        'pageNo': page,
    }
    headers = {
        'Referer': 'http://www.cwl.gov.cn/kjxx/ssq/kjgg/',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36'
    }
    response = requests.get(url=url, params=params, headers=headers)
    # <> 对象 200 请求成功  状态码
    result = response.json()['result']
    # 解析数据  键值对取值  根据冒号左边的内容 提取冒号右边的内容
    #  for 遍历
    for index in result:
        dit = {
            '期号': index['code'],
            '开奖日期': index['date'],
            '红球': index['red'],
            '蓝球': index['blue'],
            '一等奖中奖注数': index['prizegrades'][0]['typenum'],
            '一等奖中奖金额': index['prizegrades'][0]['typemoney'],
            '二等奖中奖注数': index['prizegrades'][1]['typenum'],
            '二等奖中奖金额': index['prizegrades'][1]['typemoney'],
            '三等奖中奖注数': index['prizegrades'][2]['typenum'],
            '三等奖中奖金额': index['prizegrades'][2]['typemoney'],
            '四等奖中奖注数': index['prizegrades'][3]['typenum'],
            '四等奖中奖金额': index['prizegrades'][3]['typemoney'],
            '五等奖中奖注数': index['prizegrades'][4]['typenum'],
            '五等奖中奖金额': index['prizegrades'][4]['typemoney'],
            '六等奖中奖注数': index['prizegrades'][5]['typenum'],
            '六等奖中奖金额': index['prizegrades'][5]['typemoney'],
            '一等奖中奖地区': index['content'],
            '奖池金额': index['poolmoney']
        }
        csv_writer.writerow(dit)
        print(dit)

可视化

红球
离富豪仅差一步之遥!Python采集双色球数据,做数据分析_第3张图片
篮球中奖号码
离富豪仅差一步之遥!Python采集双色球数据,做数据分析_第4张图片

最后

今天的你我变富之路,分享到这就结束了
觉得文章不错的话,记得给我三连哦

你可能感兴趣的:(Python教程,基础入门,爬虫,python,爬虫,数据分析)