阅读 174

基金详情信息获取之 Java 爬虫

1. 简介

上篇  基金列表获取之Java"伪"爬虫    简单讲解了如何获取基金列表详情,浅显易懂,没有什么难度。加下来将要继续分享如何使用 Java 爬虫分析如何抓取基金的详情信息及内容的展示。

2.基金详情抓取

 # 这里直接给大家一个基金的详情页面地址,进行分析
 http://fund.eastmoney.com/009265.html
 # 这里悄悄地告诉你一个小秘密,简单分析下这个url就会知道,前半部分就固定的格式,后半部分 '009265' 即为基金代码复制代码

基金详情页面展示如下:

image-20211120102408791

点击基金概况进入该基金的相关内容介绍信息,如下:

image.png

在基金的概况页面,可以获取基金全称,基金简称、发行日期、成立日期/规模等等相关信息,可以让基民快速的了解当前基金的一些信息,用户根据自己的需要进行收藏关注、后期购买等相关操作。

小伙伴可能会疑惑,进入基金页面后,如何自动进入基金概况页面呢,如何去解析对应的 "基金概况" 访问链接呢。额,其实我也不知道,你信吗 。

 # 基金概况访问地址
     http://fundf10.eastmoney.com/jbgk_009265.html
 # 小伙伴仔细的瞅一瞅,地址是不是很简单呢
  #   http://fundf10.eastmoney.com/ +  "基金概况"的首字母 "jbgk_" + 基金代码  + ".html"复制代码

3. 解析详情内容

根据页面进行分析,获取对应信息在Html 中的标签内容,如图,可以根据**class= " txt_cont "** 标签进行解析对应的数据信息

image.png

怎么分析呢,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 文档的解析。

image.png

本文主要使用了 getsByClassselect 两个方法,简单讲解下。

  • getElementsByClass

    通过 class 标签属性获取对应的 Html 元素

  • select 返回的是 Elements 元素集合

    Element 元素里面存在超链接等 Html 属性,所以最终获取文本的时候使用 ".text()" 方法


作者:啤酒不加冰
链接:https://juejin.cn/post/7032521311687557128


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐