Python爬取中国福彩网彩票数据并以图表形式显示
网页分析
首先打开中国福彩网,点击双色球,选择往期开奖栏目
进入栏目后,选定往期的奖金数目作为我们想要爬取的目标内容

明确目标后,开始寻找数据所在的位置
鼠标右击页面,打开网页源代码,在源代码中搜索是否存在奖金金额数目

搜索过后,发现这个金额数据没有在网页的源代码中,所以想到用抓包的方式来尝试获取这些金额数据
右击检查,选择network选项卡,按下ctrl+r键刷新界面,开始捕捉数据包
在过滤掉一些png、jpg的数据包之后,我们锁定了一个以findDrawNotice开头的数据包,打开观察数据包的内容,发现这个正是我们想要抓取的数据包



现在已经找到了想要抓包的内容,现在可以开始着手写代码了
数据提取
我们分析过网页之后,选定了要抓取的数据包,开始使用requests请求来获取数据
url = 'http://www.cwl.gov.cn/cwl_admin/kjxx/findDrawNotice?name=ssq&issueCount=30'
headers = {"User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.113 Safari/537.36","Referer":"http://www.cwl.gov.cn/kjxx/ssq/"}
response = requests.get(url,headers=headers).text
这个网页可能会有一个小的反爬措施,于是我们就在headers中加入user-agent和referer两个头信息
我们使用print语句来打印一下response的内容

print之后会发现这个内容是以字符串的格式打印出来的,如果我们想从中提取数据,则必须将它转换成字典的格式
data_json = json.loads(response) #将数据转换为json格式
将数据转换之后,我们就可以使用键值对的方式来提取我们想要的数据了
datas = data_json["result"]
for data in datas:prizegrades = data["prizegrades"] #包含中奖金额的字典提取for item in prizegrades:print(item)typemoney = item['typemoney'] #中奖金额提取print(typemoney)
这里我们尝试着逐层提取彩票的奖金信息,提取到最近的一层时,将数据打印出来分析数据

可以看到前三个和我们想要提取的数据内容是一致的,这些type后面的数字指的是奖金的等级,就是说对应到的号码是多少就是几等奖
到此为止,我们已经将需要获取的中奖金额提取出来了
转换数据
等我们看到这些数据的时候,虽然看到的是数字形式,但是他的数据类型确是字符形,通过此前对pygal模块的了解,我们知道这个模块只可以将整形的数字转换成图表格式。
所以我们需要做的就是将每一个数字提取出来,并且转换成整形存入到列表中
由于我们想要提取的只是一等奖的奖金金额(因为二、三等奖的金额远小于一等奖,不适合在图表中观察),所以这里我加上了一个if语句判断
money_list = [] #创建空列表
for data in datas:prizegrades = data["prizegrades"]for item in prizegrades:type_num = item['type']typemoney = item['typemoney']if type_num == 1: #判断奖金等级是否为1money_list.append(int(typemoney))
但是我在运行这段代码的时候会提示错误,经过我的一番疯狂分析(百度求助),发现出错的原因是在提取奖金的时候会出现下划线和空字符串的干扰,而int转换数据类型则只能装换纯数字组成的字符串,所以转换的过程中会报错。但是这并不是一个大问题,我们只需要写一个if语句来跳过非法字符串就可以解决了,下面是正确的代码:
money_list = [] #创建空列表
for data in datas:prizegrades = data["prizegrades"]for item in prizegrades:typemoney = item['typemoney']if type_num == 1: #判断奖金等级是否为1if typemoney == "": #忽略空字符passelif typemoney == "_": #忽略下划线passelse: #将其他的可用数字放入列表money_list.append(int(typemoney))
print(money_list)
观察输出:

将数据转换成图表
#设置图表样式为柱状图
view = pygal.Bar()
#图表名
view.title = '奖金金额(¥)'
#将数据填入图表
view.add('money',money_list)
#在浏览器中显示图表
view.render_in_browser()
完整代码
import json
import pygalurl = 'http://www.cwl.gov.cn/cwl_admin/kjxx/findDrawNotice?name=ssq&issueCount=30'
headers = {"User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.113 Safari/537.36","Referer":"http://www.cwl.gov.cn/kjxx/ssq/"}
response = requests.get(url,headers=headers).text
data_json = json.loads(response)
datas = data_json["result"]
money_list = [] #创建空列表
for data in datas:prizegrades = data["prizegrades"]for item in prizegrades:type_num = item['type']typemoney = item['typemoney']if type_num == 1: #判断奖金等级是否为1if typemoney == "": #忽略空字符passelif typemoney == "_": #忽略下划线passelse: #将其他的可用数字放入列表money_list.append(int(typemoney))#设置图表样式为柱状图
view = pygal.Bar()
#图表名
view.title = '奖金金额(¥)'
#将数据填入图表
view.add('money',money_list)
#在浏览器中显示图表
view.render_in_browser()
实现结果

相关文章:
Python爬取中国福彩网彩票数据并以图表形式显示
网页分析 首先打开中国福彩网,点击双色球,选择往期开奖栏目 进入栏目后,选定往期的奖金数目作为我们想要爬取的目标内容 明确目标后,开始寻找数据所在的位置 鼠标右击页面,打开网页源代码,在源代码中搜索…...
0621作业
目录 多线程并发服务器模型服务器实现 select的TCP服务器模型服务器实现 select的TCP客户端实现 多线程并发服务器 模型 sfd socket(); bind(); listen(); while(1){newfd accept();pthread_create(&tid, NULL, do_cli_msg, [newfd, cin]集合);pthread_detach(tid); } …...
ps基础入门
1.基础 1.1新建文件 1.2创建指定形状 1.4移动工具 1.41移动画布中的任意元素 1.42移动画布 1.43修改画布大小 1.44修改图像大小 1.5框选工具 1.6矩形工具 1.7图层 1.71图层颜色修改 1.72…...
c语言常用易错记录
c语言常用易错记录 文章目录 c语言常用易错记录1.for循环 1.for循环 示例: #include <stdio.h>int main() {int i;for (i 0; i < 10; i) {printf("%d\n", i);}return 0; }执行顺序 备注:此图来源于b站鹏哥C语言视频课截图…...
制造业ERP五大生产模式详解!
制造业面临着从成本控制、生产效率到供应链管理的挑战,每一个环节都需要精细化的管理和高效的协同。而ERP系统,作为一种集信息技术与管理思想于一体的管理工具,正逐渐成为制造业转型升级的关键。那么,通过本文你将会了解到&#x…...
Python20 Numpy基础
NumPy(Numerical Python)是一个开源的Python库,广泛用于科学计算。它提供了一个高性能的多维数组对象,以及用于处理这些数组的工具和函数。NumPy是数据分析、机器学习、工程和科学研究中不可或缺的工具之一,因为它提供…...
暴雨虐长沙,生灵受煎熬
今天,“湖南长沙市遭遇强降雨,一小时的降雨量足够注满54个西湖”这消息,终于登上互联网社交平台热搜榜。 截图:来源社交网站 综合多家媒体消息概述如下。 昨(24日)天,湖南长沙市遭遇强降雨,一…...
iptables(5)常用扩展模块iprange、string、time、connlimit、limit
简介 之前我们已经介绍过扩展模块的简单使用,比如使用-m tcp/udp ,-m multiport参数通过--dports,--sports可以设置连续和非连续的端口范围。那么我们如何匹配其他的一些参数呢,比如源地址范围,目的地址范围,时间范围等,这就是我们这篇文章介绍的内容。 iprange扩展模块…...
Mars3d实现汽车尾气粒子效果从汽车屁股开始发射效果
本身的汽车尾气粒子效果:在汽车模型的中间发射的↓↓↓↓↓↓↓↓↓↓↓ Mars3d实例中是使用transY偏移值实现汽车尾气粒子效果从汽车屁股开始发射效果: // 动态运行车辆的尾气粒子效果 function addDemoGraphic4(graphicLayer) {const fixedRoute new…...
01_RISC-V 入门及指令集学习
参考文档 risc-v入门:https://blog.csdn.net/bebebug/article/details/128039038RISC-V OS:https://blog.csdn.net/bebebug/article/details/130551378riscv-spec文档:https://riscv.org/wp-content/uploads/2019/12/riscv-spec-20191213.pd…...
Facebook与地方文化:数字平台的多元表达
在当今数字化时代,社交媒体不仅仅是人们交流的工具,更是促进地方文化传播和表达的重要平台。作为全球最大的社交网络之一,Facebook在连接世界各地用户的同时,也成为了地方文化多元表达的重要舞台。本文将深入探讨Facebook如何通过…...
ArmSoM-Sige7/5/1 和树莓派5规格比较
引言 在当今快速发展的嵌入式系统领域,选择一款性能强大、功能丰富的开发板对于项目的成功至关重要。本文将介绍并比较 Sige7、Sige5、Raspberry Pi 5 和 Sige1 这四款开发板的关键规格和特性,帮助开发者和爱好者选择最适合其需求的平台。 ArmSoM-Sige…...
创建App
自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 在Django项目中,推荐使用App来完成不同模块的任务,通过执行如下命令可以启用一个应用程序。 python manage.py startapp app…...
2024年6月上半月30篇大语言模型的论文推荐
大语言模型(LLMs)在近年来取得了快速发展。本文总结了2024年6月上半月发布的一些最重要的LLM论文,可以让你及时了解最新进展。 LLM进展与基准测试 1、WildBench: Benchmarking LLMs with Challenging Tasks from Real Users in the Wild Wi…...
Chromium下载
https://chromium.woolyss.com/download/ https://www.chromium.org/getting-involved/download-chromium/...
【Linux】彻底理解---环境变量(什么是环境变量,环境变量有什么作用?)
目录 一、前言 二、什么是环境变量? 三、如何添加环境变量? 四、如何获取环境变量? 💧环境变量相关的命令💧 💧测试HOME与USER💧 🔥环境变量的获取方式🔥 ① en…...
VMware完美安装Ubuntu20.04
一、官网下载Ubuntu20.04 下载地址为:https://releases.ubuntu.com/https://releases.ubuntu.com/ 下载完后镜像为ubuntu-20.04.4-desktop-amd64.iso 二、Ubuntu安装 2.1、打开VMware player,并创建新虚拟机。 2.2、点击浏览按钮选择需要安装的镜像 2…...
使用Spring Boot作为CMS系统的后台,Nuxt.js作为前台的分析
在现代Web开发中,前后端分离架构越来越受欢迎。Spring Boot和Nuxt.js的组合为构建内容管理系统(CMS)提供了一个强大的解决方案。本文将分析这种组合的优势、挑战以及应用场景。 1. 技术概述 1.1 Spring Boot Spring Boot是基于Java的框架&…...
Spring Boot整合Druid:轻松实现SQL监控和数据库密码加密
文章目录 1 引言1.1 简介1.2 Druid的功能1.3 竞品对比 2 准备工作2.1 项目环境 3 集成Druid3.1 添加依赖3.2 配置Druid3.3 编写测试类测试3.4 访问控制台3.5 测试SQL监控3.6 数据库密码加密3.6.1 执行命令加密数据库密码3.6.2 配置参数3.6.3 测试 4 总结 1 引言 1.1 简介 Dru…...
推荐一款好用的编辑工具——onlyoffice桌面编辑器8.1
读者大大们好呀!!!☀️☀️☀️ 🔥 欢迎来到我的博客 👀期待大大的关注哦❗️❗️❗️ 🚀欢迎收看我的主页文章➡️寻至善的主页 文章目录 🔥前言🚀版本更新概览🚗文档编辑PDF编辑器…...
JETSON平台SDKManager一站式部署指南:从刷机到外置存储系统迁移
1. 开箱即用:JETSON开发板基础准备 刚拿到JETSON开发板时,很多开发者会对着这块巴掌大的硬件发懵。以我经手过的几十块JETSON TX2 NX为例,正确的开箱姿势应该是先检查配件完整性。除了开发板本体,你还需要准备: 5V/4…...
深入解析 snprintf 和 vsnprintf:安全格式化字符串的最佳实践
1. 为什么需要安全的字符串格式化 在C语言开发中,字符串格式化是最基础也最容易出问题的操作之一。我见过太多因为格式化字符串不当导致的缓冲区溢出漏洞,轻则程序崩溃,重则成为安全攻击的入口点。传统的sprintf函数就像个不设防的大门&#…...
Python: 多优化算法TSP求解方案,物流路径规划代码实践 - 附详尽注释及标准数据集
Python:模拟退火算法、蚁群算法、遗传算法、粒子群算法求解旅行商问题(TSP)的Python代码程序。 物流路径规划问题。 -- 数据集采用的tsplib标准数据集,可以根据自己需求修改城市坐标。 代码完整,注释详细,打印每次迭代结果&#x…...
OpCore-Simplify:三步解决黑苹果配置难题的零代码自动化工具
OpCore-Simplify:三步解决黑苹果配置难题的零代码自动化工具 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 问题诊断:黑苹果配…...
从安装到第一个程序:VS2022社区版+C语言开发极简入门(含代码模板)
从安装到第一个程序:VS2022社区版C语言开发极简入门 在数字化浪潮席卷各行各业的今天,编程能力已成为继外语之后的又一基础技能。对于非计算机专业背景的学习者而言,选择合适的学习路径尤为重要。Visual Studio 2022社区版作为微软官方提供的…...
ExcelDataReader实战指南:高效处理Excel文件3步法掌握跨格式解析
ExcelDataReader实战指南:高效处理Excel文件3步法掌握跨格式解析 【免费下载链接】ExcelDataReader Lightweight and fast library written in C# for reading Microsoft Excel files 项目地址: https://gitcode.com/gh_mirrors/ex/ExcelDataReader ExcelDat…...
别再为日期格式头疼了!Oracle TO_TIMESTAMP函数保姆级使用指南(含常见报错解决)
Oracle TO_TIMESTAMP实战:从混乱字符串到精准时间戳的避坑指南 刚接手一个数据迁移项目时,我对着几十万条格式各异的日期记录发愁——有"2023/12/01"这样的斜杠分隔,也有"01-Dec-23 14.30.00.123"带英文月份缩写和毫秒的…...
京东开放平台应用申请实战:从零到一,避开那些“看不见”的坑
1. 为什么你需要这份京东开放平台避坑指南? 第一次申请京东开放平台应用时,我踩遍了所有能踩的坑。记得当时为了赶项目进度,直接跳过了官方文档的"不重要章节",结果在云鼎环境配置环节卡了整整三天。后来才发现…...
40 个 AI agent 跑营销,还不是最狠的
过去一年,AI 做营销最常见的用法,还是写文案、出海报、改标题、做几个短视频脚本。大家也都看腻了。 现在,真正的变化开始了。 AI 开始往营销里最难、最费人、但又最影响结果的地方发起来进攻,那就是: 盯数据、跑测…...
Qwen3-14B镜像轻量化设计:50GB系统盘+40GB数据盘高效空间管理
Qwen3-14B镜像轻量化设计:50GB系统盘40GB数据盘高效空间管理 1. 镜像概述与核心优势 Qwen3-14B私有部署镜像是一款专为RTX 4090D 24GB显存显卡优化的轻量化解决方案。通过精心设计的50GB系统盘40GB数据盘架构,实现了大模型部署的空间效率最大化。这个镜…...
