Java 爬虫获取股票信息实战

您所在的位置:网站首页 java股票查询系统 Java 爬虫获取股票信息实战

Java 爬虫获取股票信息实战

2024-06-03 16:22:12| 来源: 网络整理| 查看: 265

命运唯所遇,循环不可寻。

1 前言

在之前的文章中,python爬虫-获取股票的k线图 已经介绍了如果通过 python 爬虫来获取股票的信息。在本文中则使用 java 通过爬虫获取股票的列表信息以及股票的基本信息,本文将使用到 jsoup 和 hutool 来实现接口和网页的信息抓取。最终的目的是为了获取市场上所有stock的信息,查找那些高股息的股票,听说有些 stock 的股息率比存款利率高多了,想研究一下。

2 数据来源以及分析

之前的文章中,采用的是东方财富网的数据,但是其数据没有股息率的指标,还需要运用数据计算,偶然间发现了雪球网站上有对应的指标,还有近一年的最高价与最低价,还有今年来的涨幅,这些指标减轻了一些计算的过程,如下图所示:

图片.png 如上图所示,分页列表数据可以获取的信息很多,不仅包括股票代码和名称,还有市值、市盈率、市净率等信息,但是返回的字段比较多,需要和详情页的数据进行对比,才能知道字段的具体含义,此外关于数字类型接口返回的了科学表达式的方法,还需要进行处理。

# 股票列表访问地址 https://xueqiu.com/hq#exchange=CN&firstName=1&secondName=1_0 # 获取股票行情页面 https://xueqiu.com/S/SH601919 # 获取网站列表分页接口数据 https://xueqiu.com/hq#exchange=CN&firstName=1&secondName=1_0&order=desc&order_by=dividend_yield

如下图所示,所有的股票基本指标信息都可以从下图红框内获取,这里需要解析的是网站页面,通过 jsoup 可以获取对应的元素位置并获取对应的数值。

图片.png

综上,作者将采用解析 html 的方式来获取信息,感兴趣的读者可以研究一下接口列表字段的返回值含义。

3 数据获取

股票数据信息的获取,分为两个部分,第一部分是从股票列表中获取获取代码,第二部分是根据股票代码获取股票详情页面,通过 jsoup 来抓取标签数据。

3.1 列表数据获取

获取数据列表信息使用的 hutool 工具类来处理,接口地址已经在上个小节中展示,需要注意的是这个是分页查询的,而且在访问接口时,需要从添加请求头 cookie 参数,这里不需要进行登录,从浏览器控制台的请求头中拿到一个 cookie 添加即可。

图片.png

雪球返回的报文数据报文格式为 json,从 data -> list 中获取股票的数据节点,如上图所示,通过简单的对比就可以判断出字段的含义:

# 目前获取到的字段释义,这里只是部分内容 symbol 股票代码 name 股票名称 current 当前价格 percent 当前涨跌幅 chg 当前涨跌额 current_year_percent 当年涨跌幅 amplitude 振幅 dividend_yield 股息率 float_market_capital 流通市值 market_capital 总市值 turnover_rate 换手率 volume 成交量 amount 成交额 pe_ttm 市盈率 pb 市净率

如上代码所示,就可以获取股票的基本信息,我们需要声明一个 Stock 对象,用来封装股票的信息,在获取到列表信息后,再获取单个股票信息的信息,即可拿到完整的信息。

3.2 详细信息获取

获取到股票的代码后,就可以通过详情页面获取详细信息,这里先通过 hutool 获取详情页面的信息,然后通过 jsoup 来解析 html 文件内容。

图片.png 通过分析 dom 树,可以通过 class="quote-container" 来获取信息内容, 所有的信息都在这个 div 中,首先需要解析 1755 球友关注 休市 08-04 15:34:51 北京时间, 我们需要从其中解析出股票的关注度(投资需要反人性)以及当前数据的时间,数据都空格做间隔,第一个和第四个数据就是我们需要获取的数据。

股票当天的表现数据都是在一个 class="quote-info" 的 table 中,每个单元格 td 都保存着一个数据,我们需要解析每一个 td ,将将节点中的数据以 :进行分割,即可得到一个 key-value 的结构,然后可以通过对应 key 来获取数据,这样的实现方便很多,但缺点是不优雅,存储的 key 为中文。

3.3 信息结果

通过以上的解析,我们已经写了两个方法,最终在 main 方法中将两个方法结合一下,就可以得到最终的结果,这里只是简单的打印了股票代码和名称,价格,市盈率等信息。

图片.png

4 总结

在本文中,主要介绍了在雪球上获取股票信息的方法,使用 java 作为开发语言进行数据的抓取和处理,在后续的文章中,将继续进行数据的分析,从雪球抓取股票的 k 线数据,并且将数据保存至数据库中。欢迎大家的关注,本文中所涉及的代码已经上传至 github, 欢迎大家点赞关注。项目 github 地址 springboot-auth。



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭