使用java技术抓取网站上彩票双色球信息详解
作者:IT-source 发布时间:2022-01-04 14:47:51
前言
现在很多web应用,做过web项目的童鞋都知道,web结果由html+js+css组成,html结构都有一定的规范,数据动态交互可以通过js实现。
有些时候,需要抓取某一个你感兴趣的网站信息,一个网站信息肯定是通过某一个url,发送http请求,根据地址定位的,当知道这个地址,可以获取到很多的网络响应,需要认真分析,找到你那一个合适的地址,最后通过这个地址返回一个html给你,我们可以得到这个html,分析结构,解析这个结构获取你要的数据。Html的结构解析往往是复杂繁琐的,我们可以使用java的支持包:jsoup,可以完成发送请求,解析html等功能,得到你感兴趣的数据。
下面就以一个彩票网站为例来简单说明整体操作流程,分为以下几大步骤:
根据官网,定位到自己感兴趣的模块:双色球
分析页面,找到它的入口地址
获取地址,使用jsoup发送请求,获取返回的Document对象
分析Document对象,获取感兴趣的数据
1:根据官网,定位到自己感兴趣的模块:双色球:
本人选择的500彩票网站:请根据以下步骤,找到双色球板块。
2:分析页面,找到它的入口地址
发现右侧有一个下拉选择框,这个是历史双色球开奖期号。改变这个值,浏览器会重新去请求这期的开奖信息,确定地址是:
http://kaijiang.500.com/shtml/ssq/选择期号.shtml
3:获取地址,使用jsoup发送请求,获取返回的Document对象
创建一个maven工程,导入jsoup的依赖:在你java类中,向2地址发送请求:获取返回的页面数据:
返回的html页面内容比较多,就不贴在这里的,下面直接对这个页面分析(特别说明,每一个html的结构不是一成不变的,有可能当读者看到这篇文章的时候,网站修改了网页结构,那么你需要重新分析,当然,估计这个网站修改网页结构的可能性比较小。。。。。。)
4:分析Document对象,获取感兴趣的数据
双色球由6个红球+1个篮球组成,通过分析网页,是通过class来表示的,网页源码如下:
通过以下代码,获取到6个红球:
同理,可以获取到1个篮球。
根据这个原理,你可以获取你想要的很多的数据:以下是本人获取的数据
以上是个人对java中简单抓取网页数据的分享,感兴趣的童鞋可以自己的实践一下,实践出真知。
来源:https://blog.csdn.net/villainy13579/article/details/89680222
猜你喜欢
- 前言上一篇我们认识了Kotlin编程语言,也搭建好开发环境。本篇就进入Kotlin的基础语法介绍,与其他编程语言一样,Kotlin也有自己的
- autoMapping和autoMappingBehavior的区别autoMappingBehaviormybatis核心配置文件中set
- 初次接触spring-boot的时候,我们经常会看到这样的文章:“
- maven配置项目的jdk版本无效排查最近在配置项目的jdk的时候发现在pom.xml中配置的1.8版本无效,maven更新后就变成了1.7
- 前言RefreshIndicator是Flutter里常见的下拉刷新组件,使用是比较方便的。但由于产品兄弟对其固定的刷新样式很是不满,而且代
- 井字棋游戏要求在3乘3棋盘上,每行都相同或者每列都相同再或者对角线相同,则胜出.因此我们可以使用一个二维数组来表示棋盘,判断胜负只需要判断数
- 一,FileWritter写入文件FileWritter, 字符流写入字符到文件。默认情况下,它会使用新的内容取代所有现有的内容,然而,当指
- 第一步:引入jar包 <dependency> <gro
- 注册中心呢 就是springcloud的一个核心组件 所有微服务的基石 微服务的核心思想就是分布式 所有的服务分开管理 但这些服务分开后该如
- 文件分割与合并是一个常见需求,比如:上传大文件时,可以先分割成小块,传到服务器后,再进行合并。很多高大上的分布式文件系统(比如:google
- 最近“全网域(Web Scale)”一词被炒得火热,人们也正在通过扩展他们的应用程序架构来使他们的系统变得更加“全网域”。但是究竟什么是全网
- Java 序列化和反序列化实例详解在分布式应用中,对象只有经过序列化才能在各个分布式组件之间传输,这就涉及到两个方面的技术-发送者将对象序列
- 报错翻译: compileSdkVersion android-24”需要JDK 1.8或更高版本编译。报错现象如下图:原因:st
- 程序如下:View Code /* * Hanoi塔游戏 问题描述: * 汉诺塔:汉诺塔(又称河内塔)问
- java 进制转换实例详解十进制转成十六进制:  
- 面试题1:说说什么分布式事务?解释一下什么是CAP?现在互联网开发多使用微服务架构,一个简单的操作,在服务端可能就是由多个服务和数据库实例协
- 我们主要介绍一下:java中如何通过最简单的方式实现链式创建json对象,解决创建json代码臃肿的问题。1、假设我们要创建一个json对象
- malloc的全称是memory allocation,中文叫动态内存分配,用于申请一块连续的指定大小的内存块区域以void*类型返回分配的
- (注意:本文基于JDK1.8) 前言Vector是线程安全的动态数组类,提供4个创建Vector对象的构造方法,接下来我们逐个分析
- 骑缝章是用于往来业务合同,以确保合同真实、有效的印章加盖方法,是一种防范风险的重要方式。在Java程序中,可以通过使用工具来辅助加盖这种骑缝