Java 爬虫获取股票信息实战 |
您所在的位置:网站首页 › java股票查询系统 › Java 爬虫获取股票信息实战 |
命运唯所遇,循环不可寻。 1 前言在之前的文章中,python爬虫-获取股票的k线图 已经介绍了如果通过 python 爬虫来获取股票的信息。在本文中则使用 java 通过爬虫获取股票的列表信息以及股票的基本信息,本文将使用到 jsoup 和 hutool 来实现接口和网页的信息抓取。最终的目的是为了获取市场上所有stock的信息,查找那些高股息的股票,听说有些 stock 的股息率比存款利率高多了,想研究一下。 2 数据来源以及分析之前的文章中,采用的是东方财富网的数据,但是其数据没有股息率的指标,还需要运用数据计算,偶然间发现了雪球网站上有对应的指标,还有近一年的最高价与最低价,还有今年来的涨幅,这些指标减轻了一些计算的过程,如下图所示: 如上图所示,分页列表数据可以获取的信息很多,不仅包括股票代码和名称,还有市值、市盈率、市净率等信息,但是返回的字段比较多,需要和详情页的数据进行对比,才能知道字段的具体含义,此外关于数字类型接口返回的了科学表达式的方法,还需要进行处理。 # 股票列表访问地址 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 可以获取对应的元素位置并获取对应的数值。 综上,作者将采用解析 html 的方式来获取信息,感兴趣的读者可以研究一下接口列表字段的返回值含义。 3 数据获取股票数据信息的获取,分为两个部分,第一部分是从股票列表中获取获取代码,第二部分是根据股票代码获取股票详情页面,通过 jsoup 来抓取标签数据。 3.1 列表数据获取获取数据列表信息使用的 hutool 工具类来处理,接口地址已经在上个小节中展示,需要注意的是这个是分页查询的,而且在访问接口时,需要从添加请求头 cookie 参数,这里不需要进行登录,从浏览器控制台的请求头中拿到一个 cookie 添加即可。 雪球返回的报文数据报文格式为 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 文件内容。 通过分析 dom 树,可以通过 class="quote-container" 来获取信息内容, 所有的信息都在这个 div 中,首先需要解析 1755 球友关注 休市 08-04 15:34:51 北京时间, 我们需要从其中解析出股票的关注度(投资需要反人性)以及当前数据的时间,数据都空格做间隔,第一个和第四个数据就是我们需要获取的数据。 股票当天的表现数据都是在一个 class="quote-info" 的 table 中,每个单元格 td 都保存着一个数据,我们需要解析每一个 td ,将将节点中的数据以 :进行分割,即可得到一个 key-value 的结构,然后可以通过对应 key 来获取数据,这样的实现方便很多,但缺点是不优雅,存储的 key 为中文。 3.3 信息结果通过以上的解析,我们已经写了两个方法,最终在 main 方法中将两个方法结合一下,就可以得到最终的结果,这里只是简单的打印了股票代码和名称,价格,市盈率等信息。 4 总结在本文中,主要介绍了在雪球上获取股票信息的方法,使用 java 作为开发语言进行数据的抓取和处理,在后续的文章中,将继续进行数据的分析,从雪球抓取股票的 k 线数据,并且将数据保存至数据库中。欢迎大家的关注,本文中所涉及的代码已经上传至 github, 欢迎大家点赞关注。项目 github 地址 springboot-auth。 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |