基金详情信息获取之 Java 爬虫
1. 简介
上篇 基金列表获取之Java"伪"爬虫 简单讲解了如何获取基金列表详情,浅显易懂,没有什么难度。加下来将要继续分享如何使用 Java 爬虫分析如何抓取基金的详情信息及内容的展示。
2.基金详情抓取
# 这里直接给大家一个基金的详情页面地址,进行分析 http://fund.eastmoney.com/009265.html # 这里悄悄地告诉你一个小秘密,简单分析下这个url就会知道,前半部分就固定的格式,后半部分 '009265' 即为基金代码复制代码
基金详情页面展示如下:
点击基金概况进入该基金的相关内容介绍信息,如下:
在基金的概况页面,可以获取基金全称,基金简称、发行日期、成立日期/规模等等相关信息,可以让基民快速的了解当前基金的一些信息,用户根据自己的需要进行收藏关注、后期购买等相关操作。
小伙伴可能会疑惑,进入基金页面后,如何自动进入基金概况页面呢,如何去解析对应的 "基金概况" 访问链接呢。额,其实我也不知道,你信吗 。
# 基金概况访问地址 http://fundf10.eastmoney.com/jbgk_009265.html # 小伙伴仔细的瞅一瞅,地址是不是很简单呢 # http://fundf10.eastmoney.com/ + "基金概况"的首字母 "jbgk_" + 基金代码 + ".html"复制代码
3. 解析详情内容
根据页面进行分析,获取对应信息在Html 中的标签内容,如图,可以根据**class= " txt_cont "
** 标签进行解析对应的数据信息
怎么分析呢,Java 爬虫常用 Jsoup 进行Html 网页的分析。
<!-- 引入Jsoup 依赖 --> <dependency> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <version>1.13.1</version> </dependency>复制代码
// 实现具体逻辑如下 Connection connection = Jsoup.connect("http://fundf10.eastmoney.com/jbgk_009265.html"); Document doc = connection.get(); // 根据 class标签进行解析 Elements element = doc.getElementsByClass("txt_cont"); // 获取表格中的 "th" "td" 文本信息 Elements th = element.select("th"); Elements td = element.select("td"); for (int i = 0; i < th.size(); i++) { // 打印获取到的内容信息 System.out.println(th.get(i).text() + ": " + td.get(i).text()); }复制代码
基金全称: 易方达消费精选股票型证券投资基金 基金简称: 易方达消费精选股票 基金代码: 009265(前端) 基金类型: 股票型 发行日期: 2020年04月08日 成立日期/规模: 2020年04月13日 / 79.147亿份 资产规模: 71.23亿元(截止至:2021年09月30日) 份额规模: 58.9184亿份(截止至:2021年09月30日) 基金管理人: 易方达基金 基金托管人: 建设银行 基金经理人: 萧楠 成立来分红: 每份累计0.00元(0次) 管理费率: 1.50%(每年) 托管费率: 0.25%(每年) 销售服务费率: ---(每年) 最高认购费率: 1.20%(前端) 天天基金优惠费率:0.12%(前端) 最高申购费率: 1.50%(前端) 天天基金优惠费率:0.15%(前端) 最高赎回费率: 1.50%(前端) 业绩比较基准: 中证内地消费主题指数收益率×50%+中证香港300消费指数收益率×35%+中债总指数收益率×15% 跟踪标的: 该基金无跟踪标的复制代码
以上就是对基金概况信息的简单解析。
4. Jsoup 常用 Api
可以选择官方文档进行查看,官方地址,可以根据自己的需要进行选择合适的方法进行 Html 文档的解析。
本文主要使用了 getsByClass
和 select
两个方法,简单讲解下。
getElementsByClass
通过 class 标签属性获取对应的 Html 元素
select
返回的是 Elements 元素集合Element 元素里面存在超链接等 Html 属性,所以最终获取文本的时候使用 ".text()" 方法
作者:啤酒不加冰
链接:https://juejin.cn/post/7032521311687557128