Java实现双色球历史是否中奖查询

news/2025/9/24 8:37:20/文章来源:https://www.cnblogs.com/brighthong/p/19108513

Java实现双色球历史是否中奖查询

在一些问答里,很多彩友都在问:如何查看自己的双色球号码在历史期次中有没有中过奖?作为开发者兼彩友,这个问题就简单了,决定解决一下这个问题,先上结果: 双色球历史是否中奖查询网站

要实现这个功能,关键点如下:

  1. 收集双色球历史所有数据,并自动接收增量期次数据
  2. 做一个接口,传参为双色球号码,单式、复式、胆拖,然后后台接收这个号码以后,与历史每一期的数据进行对比,查看是否中奖
  3. 做一个前端展示页面,允许用户输入号码,点击查询按钮,调用2的接口,展示返回结果

采用Springboot+Freemarker引擎实现

1. 收集双色球历史所有数据

采取java jsoup爬虫方式,示例:


public class LotteryCrawler {public static void main(String[] args) {String url = "http://kaijiang.500.com/ssq.shtml"; // 双色球开奖结果页面try {crawlLotteryData(url);} catch (IOException e) {e.printStackTrace();}}public static void crawlLotteryData(String url) throws IOException {Document doc = Jsoup.connect(url).get();Elements pageLinks = doc.select("div.iSelectList a"); // 根据实际页面结构调整选择器Path csvFilePath = Paths.get("双色球开奖结果.csv");if (Files.exists(csvFilePath)) {Files.delete(csvFilePath);}List<String> csvHeader = new ArrayList<>();csvHeader.add("期号,红球1,红球2,红球3,红球4,红球5,红球6,蓝球");Files.write(csvFilePath, csvHeader, java.nio.charset.StandardCharsets.UTF_8);for (Element link : pageLinks) {String pageUrl = link.attr("href");String period = link.text();crawlLotteryPeriodData(pageUrl, period, csvFilePath);}}public static void crawlLotteryPeriodData(String url, String period, Path csvFilePath) throws IOException {Document periodDoc = Jsoup.connect(url).get();Elements balls = periodDoc.select("div.ball_box01 ul li"); // 根据实际页面结构调整选择器List<String> dataRow = new ArrayList<>();dataRow.add(period);for (Element ball : balls) {dataRow.add(ball.text());}String dataLine = String.join(",", dataRow);Files.appendString(csvFilePath, dataLine + "\n");System.out.println("第" + period + "期开奖结果录入完成");}
}

2. 查询接口

编写REST服务接口,示例:

    //查看单期是否中奖@RequestMapping(value ="/duotoneLottery/query",method = RequestMethod.GET)public List<DuotoneLotteryHistory> getDuotoneLotteriesByList(@RequestParam(value = "blue", required = false) Integer blue,@RequestParam(value = "red") String red){long startTime = System.currentTimeMillis();logger.info("begin query, blue: " + blue + ", red: " + red);List<String> ballList = Arrays.asList(red.split(","));List<Integer> balls = ballList.stream().map(Integer::valueOf).collect(Collectors.toList());Collections.sort(balls);DuotoneLotteryHistory duotoneLotteryQO = new DuotoneLotteryHistory();duotoneLotteryQO.setRed1(balls.get(0));duotoneLotteryQO.setRed2(balls.get(1));duotoneLotteryQO.setRed3(balls.get(2));duotoneLotteryQO.setRed4(balls.get(3));duotoneLotteryQO.setRed5(balls.get(4));duotoneLotteryQO.setRed6(balls.get(5));duotoneLotteryQO.setBlue(blue);QueryWrapper<DuotoneLotteryHistory> wrapper = new QueryWrapper<>(duotoneLotteryQO);List<DuotoneLotteryHistory> duotoneLotteryHistories = duotoneLotteryHistoryService.list(wrapper);logger.info("result size: " + duotoneLotteryHistories.size());String totalTime = DateUtils.getFriendlyTimeDiff(startTime, System.currentTimeMillis());logger.info("end totalTime: " + totalTime);return duotoneLotteryHistories;}

3. 前端

<!--begin header-->
<header class="header"><#include "../../pc/public/header.html">
</header>
<!--end header--><!--begin banner-->
<div class="banner mt20"></div>
<!--end banner--><div class="container fix mt20"><!--begin rightBar--><div class="rightBar"><#include "../../pc/public/rightbar.html"></div><!--end rightBar--><div class="content-body"><div class="filter filter-body"><div class="head-bar"><#include "../../pc/public/ssq-header-bar.html"></div><div class="panel bbd"><div class="desc">双色球历史中奖查询:将查询您输入的双色球号(单式),在历史期数中是否已经中过奖,供您参考。<br/>若中过,将显示对应的开奖记录;若未中过奖,将显示 ‘未出现在历史中奖纪录中’</div><div class="red-ball"><p>红球区</p> --- 选择6个</div><div class="red-ball-list"><ul class="clearfix"><li><em>01</em></li><li><em>02</em></li><li><em>03</em></li><li><em>04</em></li><li><em>05</em></li><li><em>06</em></li><li><em>07</em></li><li><em>08</em></li><li><em>09</em></li><li><em>10</em></li><li><em>11</em></li><li><em>12</em></li><li><em>13</em></li><li><em>14</em></li><li><em>15</em></li><li><em>16</em></li><li><em>17</em></li><li><em>18</em></li><li><em>19</em></li><li><em>20</em></li><li><em>21</em></li><li><em>22</em></li><li><em>23</em></li><li><em>24</em></li><li><em>25</em></li><li><em>26</em></li><li><em>27</em></li><li><em>28</em></li><li><em>29</em></li><li><em>30</em></li><li><em>31</em></li><li><em>32</em></li><li><em>33</em></li></ul></div><div class="blue-ball"><p>蓝球区</p> --- 选择1个</div><div class="blue-ball-list"><ul class="clearfix"><li><em>01</em></li><li><em>02</em></li><li><em>03</em></li><li><em>04</em></li><li><em>05</em></li><li><em>06</em></li><li><em>07</em></li><li><em>08</em></li><li><em>09</em></li><li><em>10</em></li><li><em>11</em></li><li><em>12</em></li><li><em>13</em></li><li><em>14</em></li><li><em>15</em></li><li><em>16</em></li></ul></div><div class="sel-num"><span>您当前选了 <b class="c-red">0</b> 个红球 <b class="c-blue">0</b> 个蓝球</span><a href="#" class="clean-btn">清空上方选号</a></div><button type="button" class="btn select-ok-btn">查询</button></div><div id="filterResult" ></div><div class="resing" style="display:none"><img src="/images/loading.gif"></div><div class="res" style="display:none">共匹配到&nbsp;<p class="total"></p>&nbsp;条记录</div><div class="res0" style="display:none">未出现在历史中奖纪录中!</div><div class="filter-list" id="filterList"></div></div></div></div>

121

至此,查询双色球号码在历史期次中是否中过奖的功能就开发完了,前往体验: 双色球历史是否中奖查询网站

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/915371.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

iframe引入界面有el-date-picker日期框,点击出现闪退问题处理 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

ABC424 游记(VP)

前五题没什么难度,第六题恰好会,运气好 6t 没寄。省流 前五题没什么难度,第六题恰好会,运气好 6t 没寄。9.23 内含剧透,请vp后再来。 不是题解!!!!!!! 赛前 下午下大雨没去图书馆,浪费了一下午,晚上准备…

Java实现大乐透历史是否中奖查询

Java实现大乐透历史是否中奖查询 在一些问答里,很多彩友都在问:如何查看自己的大乐透号码在历史期次中有没有中过奖?作为开发者兼彩友,这个问题就简单了,决定解决一下这个问题,先上结果: 大乐透历史是否中奖查询…

怎么弄网站做网站卖东西wordpress 怎样写函数

在Android开发中使用View制作一个引导动画发布时间&#xff1a;2020-11-20 16:46:16来源&#xff1a;亿速云阅读&#xff1a;98作者&#xff1a;Leah这篇文章将为大家详细讲解有关在Android开发中使用View制作一个引导动画&#xff0c;文章内容质量较高&#xff0c;因此小编分享…

网站如何做会员通用西安网站制作网站

第一种方案&#xff1a;使用CountDownLatch工具类 CountDownLatch&#xff1a;是Java多线程编程中的一个同步工具类&#xff08;计数锁&#xff09;&#xff0c;它允许一个或多个线程等待其他线程完成操作后再继续执行。其内部维护了一个计数器&#xff0c;当线程在执行任务完…

如何把网站做的和别人一样网站的具体内容

XSS漏洞&#xff08;跨站脚本&#xff09; 1.XSS 漏洞简介 ​ XSS又叫CSS&#xff08;Cross Site Script&#xff09;跨站脚本攻击是指恶意攻击者往Web页面里插入恶意Script代码&#xff0c;当用户浏览该页之时&#xff0c;嵌入其中Web里面的Script代码会被执行&#xff0c;从…

新类型网站利用js做网站

1. 题目 2. 分析 合理地改造原数据&#xff0c;这样会使得代码逻辑大大简化。 为了让代码走相同的逻辑&#xff0c;这里需要在原数据后面追加一个price 0。这个price 0大大地简化了处理[1,2,3,4,5] 这类型数据的复杂度。 3. 代码 class Solution:def maxProfit(self, pri…

怎么做网站不用备案怀宁做网站

高斯模糊、加载监听、圆角图片这些相信大家都很熟悉&#xff0c;那如何实现这些效果&#xff0c;请大家参考本文进行学习。1、引用compile com.github.bumptech.glide:glide:3.7.02、加载图片2.1 基本加载Glide.with(context).load(url).into(imageView);2.2 设置加载中和加载失…

找项目seo网站设计多少钱

集合里面的 E是泛型 暂且认为是object转载于:https://www.cnblogs.com/classmethond/p/10011374.html

如何做聚合类网站业务员销售管理软件

1.题目 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中同一个元素在答案里不能重复出现。 你可以按任意…

潭州教育网站开发网站建设开发报价单

定义 标识符只能由字母、数字、下划线&#xff08;_&#xff09;和美元符号&#xff08;$&#xff09;组成。标识符必须以字母、下划线或美元符号开头&#xff0c;不能以数字开头。标识符对大小写敏感&#xff0c;例如"myVariable"和"myvariable"是不同的…

昆山网站建设义搏专业制作假行驶证

文章目录显示/隐藏文件快捷键修改“访达”属性修改文件隐藏属性设置特殊文件名实现隐藏使用命令设置文件隐藏属性显示/隐藏文件 快捷键 按下 Shift Command . 可以显示隐藏型的文件&#xff0c;再按下 Shift Command . 则不显示隐藏型的文件 修改“访达”属性 defaults…

拖拽式制作网站自己做网站代理产品

实战案例分析 为了更好地理解爬虫逆向的实际应用&#xff0c;我们以一个具体的案例进行分析。 案例背景 假设我们需要从某电商网站上获取商品价格信息&#xff0c;但该网站采取了反爬虫措施&#xff0c;包括动态Token和用户行为分析等。 分析与挑战 动态Token&#xff1a;…

做ppt的模板的网站蒲江网站建设

网上随便找段文字&#xff0c;就以Power BI官网上这段文字为例好了&#xff1a;想要统计其中的词频&#xff0c;实现如下图的效果&#xff1a;解法1&#xff1a;使用输入法词库其中的难点无疑在分词了&#xff0c;中文不像英文可以按空格拆开分词&#xff0c;仅仅单靠Power Que…

做网站带来的好处在兔展上怎么做网站页面

网管小贾 / sysadm.cc 公司来了位刚毕业的实习生小蔡&#xff0c;老板让我带带他。 我想着这小伙子干活挺积极主动&#xff0c;平时没事也可以给我搭把手。 可意想不到的是&#xff0c;正是由于我一时心软放松警惕&#xff0c;渐渐被拖进了坑。 话说某天临下班前&#xff0c;…

黑龙江建设网站网站添加微信支付

L2-004 这是二叉搜索树吗&#xff1f; (25 分) 一棵二叉搜索树可被递归地定义为具有下列性质的二叉树&#xff1a;对于任一结点&#xff0c; 其左子树中所有结点的键值小于该结点的键值&#xff1b; 其右子树中所有结点的键值大于等于该结点的键值&#xff1b; 其左右子树都是…

做面包有哪些网站知乎广西自治区集约化网站建设要求

简单工厂模式&#xff08;Simple Factory Pattern&#xff09;是一种创建型设计模式&#xff0c;其主要目的是用于创建对象的实例。这种模式通过封装创建对象的代码来降低客户代码与具体类之间的耦合度。简单工厂不是GoF&#xff08;四人帮&#xff09;设计模式之一&#xff0c…

国美网站建设的目的北京养老网站开发

随着互联网的快速发展&#xff0c;越来越多的网站开始使用HTTPS协议来保证用户的信息安全和隐私。而HTTPS协议的实现离不开HTTPS证书的支持。HTTPS证书是一种数字证书&#xff0c;用于验证网站的身份并加密数据传输。它通过使用公钥加密技术&#xff0c;确保用户与网站之间的通…

阿德勒的课题分离是很好用的东西

正文今天聊一个心理学概念,我觉得非常实用的东西:阿德勒的 "课题分离"。之前聊过,心理学三巨头:弗洛伊德、荣格、阿德勒。详情见这篇文章。精神分析我们就不说了,起码原教旨主义就不说了,那个就是邪教…

巴南网站建设个人域名备案的要求

我的个人博客主页&#xff1a;如果’真能转义1️⃣说1️⃣的博客主页 关于Java基本语法学习---->可以参考我的这篇博客&#xff1a;《我在VScode学Java》 续《我在VScode学Java&#xff08;Java的类与对象&#xff09;》 方法会操作对象并访问他们的实例字段。 伍._. 显式参…