Java爬取往期所有双色球开奖结果

用SpringBoot+Jsoup爬取500彩票网双色球数据,手把手教你做个历史中奖查询小工具 本文详细介绍了如何使用SpringBoot和Jsoup构建双色球历史数据分析系统,包括数据采集、处理与查询功能的实现。通过实战案例,帮助Java开发者掌握网页数据采集技术,并开发实用的历史中奖查询工具,提升数据处理能力。 阅读详情

梦想还是要有的,万一实现了呢?我相信经常买双色球的朋友和我都会有一个疑问,就是往期双色球的开奖结果是什么?我钟意的这一注双色球在往期是否开过一等奖,如果开过的话,基本上可以放弃这一注了,因为历史上应该没有出现过两期双色球开奖完全一致的吧?那么往期的开奖结果是什么呢?我自己用Java写了一个简易的类,爬取所有双色球开奖结果,本来想开发安卓版本的,由于UI等需要时间准备,有缘再开发吧。

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.zip.GZIPInputStream;


public class AllBalls {

    private static StringBuffer mStringBuffer;

    public static void main(String[] args) {
        System.out.println("正在获取...");
        mStringBuffer = new StringBuffer();

        String baseUrlPrefix = "http://kaijiang.zhcw.com/zhcw/html/ssq/list_";
        String baseUrlSuffix = ".html";
        String homeUrl = "http://kaijiang.zhcw.com/zhcw/html/ssq/list_1.html";
        String pageCountContent = getHtmlString(homeUrl);
        int pageCount = getPageCount(pageCountContent);
        if (pageCount > 0) {
            for (int i = 1; i <= pageCount; i++) {
                String url = baseUrlPrefix + i + baseUrlSuffix;
                String pageContent = getHtmlString(url);
                if (pageContent != null && !pageContent.equals("")) {
                    getOneTermContent(pageContent);

                } else {
                    System.out.println("第" + i + "页丢失");
                }

                try {
                    Thread.sleep(1200);
                } catch (Exception e) {
                    // TODO: handle exception
                }
            }

            File file = new File("双色球.txt");
            if (file.exists()) {
                file.delete();
            }

            try {
                FileWriter writer = new FileWriter(file);
                BufferedWriter bufferedWriter = new BufferedWriter(writer);
                bufferedWriter.write(mStringBuffer.toString());
                bufferedWriter.close();
                writer.close();

            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            //BufferedWriter writer = new BufferedWriter(new OutputS)

        } else {
            System.out.println("结果页数为0");
        }

        System.out.println("完成!");
    }


    /**
     * 获取总页数
     * @param result
     */
    private static int getPageCount(String result) {
        String regex = "\\d+\">末页";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(result);
        String[] splits = null;
        while (matcher.find()) {
            String content = matcher.group();
            splits = content.split("\"");
            break;
        }
        if (splits != null && splits.length == 2) {
            String countString = splits[0];
            if (countString != null && !countString.equals("")) {
                return Integer.parseInt(countString);
            }

        }
        return 0;
    }

     /**
     * 获取网页源码
     * @return
     */
    private static String getHtmlString(String targetUrl) {
        String content = null;

        HttpURLConnection connection = null;
        try {
            URL url = new URL(targetUrl);
            connection = (HttpURLConnection) url.openConnection();
            connection.setRequestMethod("POST");

            connection.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 7.0; Windows 7)");
            connection.setRequestProperty("Accept", "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */*");
            connection.setRequestProperty("Accept-Language", "zh-cn");
            connection.setRequestProperty("UA-CPU", "x86");
            //为什么没有deflate呢
            connection.setRequestProperty("Accept-Encoding", "gzip");
            connection.setRequestProperty("Content-type", "text/html");
            //keep-Alive,有什么用呢,你不是在访问网站,你是在采集。嘿嘿。减轻别人的压力,也是减轻自己。
            connection.setRequestProperty("Connection", "close");
            //不要用cache,用了也没有什么用,因为我们不会经常对一个链接频繁访问。(针对程序)
            connection.setUseCaches(false);
            connection.setConnectTimeout(6 * 1000);
            connection.setReadTimeout(6 * 1000);
            connection.setDoOutput(true);
            connection.setDoInput(true);
            connection.setRequestProperty("Charset", "utf-8");

            connection.connect();

            if (200 == connection.getResponseCode()) {
                InputStream inputStream = null;
                if (connection.getContentEncoding() != null && !connection.getContentEncoding().equals("")) {
                    String encode = connection.getContentEncoding().toLowerCase();
                    if (encode != null && !encode.equals("") && encode.indexOf("gzip") >= 0) {
                        inputStream = new GZIPInputStream(connection.getInputStream());
                    }
                }

                if (null == inputStream) {
                    inputStream = connection.getInputStream();
                }

                BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "utf-8"));
                StringBuilder builder = new StringBuilder();
                String line = null;
                while ((line = reader.readLine()) != null) {
                    builder.append(line).append("\n");
                }
                content = builder.toString();
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (connection != null) {
                connection.disconnect();
            }
        }

        return content;
    }

    private static void getOneTermContent(String pageContent) {
        String regex = "<td align=\"center\" style=\"padding-left:10px;\">[\\s\\S]+?</em></td>";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(pageContent);
        while (matcher.find()) {
            String oneTermContent = matcher.group();
            getOneTermNumbers(oneTermContent);
        }
    }

    private static void getOneTermNumbers(String oneTermContent) {

        String regex = ">\\d+<";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(oneTermContent);
        while (matcher.find()) {
            String content = matcher.group();
            String ballNumber = content.substring(1, content.length()-1);
            mStringBuffer.append(ballNumber).append(" ");
        }

        mStringBuffer.append("\r\n");
    }
}

从爬取到预测再到游戏:我用Python+Tkinter做了一个完整的双色球分析模拟器 本文详细介绍了如何使用Python和Tkinter开发一个完整的双色球分析模拟器,涵盖数据采集、预测模型构建和GUI开发全流程。通过爬虫获取开奖号码数据,结合机器学习模型进行预测,并最终实现交互式游戏界面,展示了Python在全栈开发中的强大应用能力。 阅读详情

相关推荐

用Python+BeautifulSoup抓取双色球数据:TXT与Excel双格式输出教程

本文详细介绍了如何使用Python和BeautifulSoup抓取中国福利彩票官网的双色球历史数据,并支持TXT与Excel双格式输出。通过不到100行代码实现自动化爬取,帮助用户高效获取和分析双色球数据,提升工作效率。

weixin_33725722的博客 288

java双色球历史数据获取

获取双色球历史kj数据

ydsyang的专栏 1267

Java实战:构建双色球历史中奖智能查询系统

本文详细介绍了使用Java技术栈构建双色球历史中奖智能查询系统的全过程。通过Jsoup爬虫采集数据,设计高效的MySQL数据库表结构,并利用Spring Boot和MyBatis-Plus实现核心查询功能。系统支持单式、复式及胆拖等多种投注方式的智能查询与中奖等级判定,是一个涵盖数据采集、存储、后端逻辑与前端展示的全栈实战项目。

weixin_29253711的博客 133

【Java实现体育彩票双色球开奖数字】

Java实现体育彩票双色球开奖数字,需要用到数组进行。

m0_72254454的博客 1041

Java构建双色球历史号码中奖概率分析引擎

本文详细介绍了如何使用Java构建双色球历史号码中奖概率分析引擎,从数据采集、存储优化到核心概率算法实现,全面提升查询功能为智能分析系统。通过蒙特卡洛模拟和冷热号分析算法,帮助用户精准预测中奖概率,并结合ECharts实现可视化报告,为彩民提供数据支持。

weixin_28475533的博客 399

java爬取双色球所有中奖号码历史数据

org.jsoup是一个用于解析、操作和遍历HTML文档的Java库。它提供了简单易用的API,使得开发者能够方便地从HTML中提取数据、修改HTML内容、进行选择器查询等操作。下面对org.jsoup的主要功能进行详细解释。

洛阳泰山的博客 4799

Java用Jsoup开发爬虫获取双色球开奖信息

想要获取双色球开奖信息,利用爬虫无疑是个比较方便的方式,针对简单的功能,除了python以外,Java也有比较便捷的方式——Jsoup 要获取指定位置的内容,需要知道该内容的标签,比如红球的标签是<li>,class是ball_red,那么对应的,我们就要去获取这个标签的内容 话不多说,直接上代码 import org.jsoup.Connection; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.js

l401201012的博客 1346

Java实现爬取往期所有双色球开奖结果功能示例

主要介绍了Java实现爬取往期所有双色球开奖结果功能,涉及Java网页抓取、正则替换、文件读写等相关操作技巧,需要的朋友可以参考下

双色球2013年统计,从网上爬虫出来的

package com.hpu.bai;   import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileOutputStream; import java.io.FileWriter; import java.i...

baiguomin1991的专栏 228

Flutter 中使用蓝牙插件报错,说没有权限怎么解决

2、在build.grale里面更改一下版本号,我修改的是targetSdkVersion这个版本号,需要根据你自己的版本进行更改,记得更改之后先flutter clean一下再run。搞了一晚上,没搞出来,第二天用同事手机测试发现他手机可以,我手机还是不行,才发现是Android版本问题,需要修改两处地方。废话不多说,咱先看报错信息。

zzj17637822814的博客 2289

AD2S1210与DSP28335 SPI通信中的GPIO配置陷阱与解决

本文深入剖析了AD2S1210与DSP28335进行SPI通信时,因GPIO输入限定配置不当导致数据整体右移的典型问题。文章指出,错误地将MISO引脚配置为带采样周期的同步模式是根本原因,并提供了将输入选择限制正确设置为异步模式的解决方案。同时,总结了不同应用场景下GPIO输入限定的配置原则,为高速同步通信的稳定实现提供了关键指导。

weixin_29163857的博客 146

用Java、Python实现分析最近100期双色球开奖的高频球号

用代码有机会实现财富自由

Jarvis's Blog 1697

MobaXterm破解14个会话限制的保姆级教程(附Python环境配置指南)

本文提供了MobaXterm破解14个会话限制的详细教程,并深入讲解了如何配置稳定的Python环境以支持相关脚本运行。通过理解软件授权机制、安全实践步骤以及许可文件的应用,帮助用户解除会话数量限制,实现高效的远程服务器管理与自动化运维。

weixin_29211309的博客 1652

爬取双色球的中奖号码

好久没更新了,最近工作才慢慢进入正轨,才有时间来慢慢记录自己喜欢和感兴趣的事。 前段时间看到有朋友在研究双色球的事,顺便学习了一下,感觉可以用我们所学来简单的预测一下下一期的双色球事多少,所以我爬取来往期所有中奖的双色球的号码,讲真这个纯属好玩。 下面上代码: import re import requests from bs4 import BeautifulSoup as BS ...

Miracle.Zhao的博客 3636

若依RuoYi文件上传漏洞实战:如何安全配置/profile/upload路径(附避坑指南)

本文深入解析若依RuoYi框架中/profile/upload路径的文件上传漏洞,提供详细的安全配置方案和实战指南。通过权限修正、输入验证强化和存储隔离等多层防御策略,有效防范未授权访问和恶意文件上传风险,保障系统安全。

pink的博客 780

SAP 系统间信任关系配置全攻略:从 SM59 到 SMT1 的实践与风险控制

本文介绍了在SAP系统间配置信任关系的详细流程与最佳实践。文章以SAP Gateway与后端系统架构为场景,从SM59创建RFC目的地开始,到SMT1建立信任关系,再到授权对象S_RFCACL的配置,提供了完整的操作指南。重点包括:使用标准命名规范创建专用RFC连接、通过向导完成系统间信任登记、严格控制S_RFCACL授权范围等。文中还分享了真实项目案例、可复用的检查清单以及常见问题的排查思路,帮助用户实现稳定可靠的跨系统无密码调用,同时确保安全性。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 324

Java:爬虫htmlunit实践

Java:爬虫htmlunit实践,爬取指定网站数据

一些平时在开发过程中遇到的常见问题,分享给大家 2117

从原理到落地:Mamba-YOLOv8 全面实战指南(源码 + 训练 + 部署一次学会)

在目标检测领域,CNN与Transformer的较量从未停歇。本文提出一种革命性的架构——,将状态空间模型(SSM)首次引入YOLO框架。实验表明,该模型在COCO数据集上达到54.3% mAP@0.5,推理速度达89 FPS(RTX 4090),相比原版YOLOv8提升12.7%精度与23%速度。本文将完整揭示其技术原理与工程实现,助您掌握这一前沿技术。

FJN110的博客 120

Python+Java简单分析这6年的双色球

点击上方“程序人生”,选择“置顶公众号”第一时间关注程序猿(媛)身边的故事作者Staker一个喜欢写代码的肥宅如需转载,请联系授权。双色球是我国很有名的一款彩票,而在这篇...

程序人生的博客 7006

学Simulink——基于大数据处理与云计算的场景实例:无人机与云计算中心之间的高效数据传输链路设计

本文以无人机与云计算中心的高效数据传输链路设计为例,手把手指导使用Simulink进行系统级建模。针对智慧城市、灾害监测等场景中无人机采集的海量数据(视频、图像、点云等),构建包含数据源、传输协议、无线链路、云接入和性能分析的五层架构模型。通过智能数据压缩、多链路聚合和QoS优先级调度等关键技术,实现5G+Wi-Fi等多通信技术的自适应切换。仿真结果表明,5G+Wi-Fi链路聚合在城市环境中表现最优,而4G+卫星组合适合偏远地区。该模型为无人机实时数据传输提供了有效的设计方法和优化方向,可拓展至边缘计算、A

xiaoheshang_123的博客 120

【制作100个unity游戏之30】使用unity实现一款2d俯视角RPG战斗游戏,主要使用InputSystem+有限状态机+A*寻路实现(完结,附带项目源码)

【制作100个unity游戏之30】使用unity实现一款2d俯视角RPG战斗游戏,主要使用InputSystem+有限状态机+A*寻路实现

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 4654

使用java技术抓取网站上双色球信息

现在很多web应用,做过web项目的童鞋都知道,web结果由html+js+css组成,html结构都有一定的规范,数据动态交互可以通过js实现。有些时候,需要抓取某一个你感兴趣的网站信息,一个网站信息肯定是通过某一个url,发送http请求,根据地址定位的,当知道这个地址,可以获取到很多的网络响应,需要认真分析,找到你那一个合适的地址,最后通过这个地址返回一个html给你,我们可以得到这...

ITsource 1380

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Java用Jsoup开发爬虫获取双色球历史开奖信息,并排序

【代码】Java用Jsoup开发爬虫获取双色球历史开奖信息,并排序。

weixin_58691039的博客 1278

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

实时采集福利彩票的中奖信息和最新开奖信息-JAVA

获取代理IP出错: 请到 http://www.data5u.com 获取最新的代理IP-API接口,或者修改Memory.useProxyIp=false。项目代码已上传到GITHUB https://github.com/mcj8089/crawl-caipiao.git。可以采集的彩票类型包括:1快乐8,2双色球,3福彩3D,4七乐彩,5大乐透,6排列3,7排列5,8七星彩。本项目介绍了如何使用代理IP和多线程采集公开彩票数据,项目尚不具备使用条件,仅供学习参考。如需要使用代理IP,请到。

无忧代理IP 3965

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

2024年最全java爬取双色球所有中奖号码历史数据,程序员如何解决中年危机

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录需要这份系统化的资料的朋友,可以点击这里获取ff00ff254613a03fab5e56a57acb)收录**需要这份系统化的资料的朋友,可以点击这里获取。

2401_84585316的博客 1500

大数据技术:python双色球数据实时分析平台+实时监控大屏 数据爬虫 可视化大屏+Flask框架 大数据 毕业设计(源码)✅

python双色球数据实时分析平台+实时监控大屏 数据爬虫 可视化大屏+Flask框架 大数据 毕业设计(源码)✅

vx_biyesheji0001的博客 823
上一篇: 安卓开发常用方法集合
下一篇: AndroidStudio之NDK开发流程(手动版)
ithouse
博客等级 码龄12年 200粉丝 212原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ithouse

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值