这是我参与11月更文挑战的第1天,活动详情查看:2021最后一次更文挑战
1. 文章的由来
认识一哥们,颜值与才华兼具,奈何选择靠才华体验生活。算了不说他了,免得自我贬低 ~ . ~
稠密的眉毛哗变地稍稍向上扬起,长而微卷的睫毛下,有着一双像朝露一样清亮的眼睛,英挺的鼻梁,像玫瑰花瓣一样粉嫩的嘴唇,还有白净的皮肤。
冰冷孤傲的眼睛好像没有焦距,深黯的眼底布满了舒适,乌黑的头发,散在耳边,耳钻发出幽蓝的光线。俊美的不能不令人暗暗赞叹,他的身边围绕着一股冰冷的气味。
复制代码
作为一个 "年轻"人,很多的朋友都应该对基金、股票有所涉猎,别说话,说话的都是亏损的多,这哥们除外哈!
本篇文章就是比葫芦画瓢,不喜勿喷,仅供学习娱乐使用。
2.数据来源
大佬已经给我们测过小河的深度了,不深 。。。 刚好比你我的身高高一截,所以 ... 切勿随意下河游泳,来吧,乘坐这个小木舟也是可以过河的。
往下瞅,就这个优秀的请求,告诉了你赚钱的秘密,是不是希望自己的基金/股票列表也是一样大红色呢。
#原始链接: 提供想要的数据信息
http://fund.eastmoney.com/Data/Fund_JJJZ_Data.aspx?lx=1&sort=zdf,desc&page=2,200&onlySale=0
# lx分明就是类型的简写。sort 是对某些字段排序可以忽略。分页的话2,200就是第二页,每页200条,onlySale就是可以卖出的条件。
http://fund.eastmoney.com/Data/Fund_JJJZ_Data.aspx?lx=1&sort=zdf,desc&page=2,100&onlySale=0
复制代码
别的不说,就为这个链接,你们得去给参考文章点个赞 !!!
3.数据抓取
接下来才是头疼的问题,你想要的都有了,那么我想要地麻烦满足一下吧。
对于一名“脸滚”键盘的你来说或许不是那么的困难,对吧 ( 哈哈哈 )。只需一个 Http 请求即可获取我们想要的数据。关于Java相关的Http请求方式种类有很多,笔者使用的是基于第三方开源工具类 Hutool 的Http请求。
// 1. 繁琐的请求方式
HttpConnection httpConnection = HttpConnection.create(url, null);
InputStream inputStream = httpConnection.getInputStream();
// 读取数据信息
InputStreamReader inputStreamReader = new InputStreamReader(inputStream,"UTF-8");
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String temp;
while ((temp = bufferedReader.readLine()) != null){
// 打印读取到的信息
System.out.println(temp);
}
// 2. 便捷的请求方式
HttpResponse httpResponse = HttpRequest.get(url).timeout(300 * 1000)
.setConnectionTimeout(200 * 1000).execute();
System.out.println(httpResponse.body());
复制代码
获取如下数据信息截图如下:
但是上面的数据不是我们想要的怎么办呢,这时就要瞅瞅小木舟上有其他什么可用的工具,比如Json格式解析,具体实现如下:
// 使用上面便捷的方法对获取的结果进行解析
// 根据打印的结果信息进行分析,需要将结果转换为标准的json格式
JSONObject jsonObject = new JSONObject(httpResponse.body().replace("var db=",""));
// 获取基金详情列表Json数组
JSONArray datas = jsonObject.getJSONArray("datas");
List<Fund> funds = new ArrayList<>();
for (int i = 0; i < datas.length(); i++) {
JSONArray jsonArray = datas.getJSONArray(i);
Fund fund = new Fund();
fund.setCode(jsonArray.getString(0));
fund.setName(jsonArray.getString(1));
fund.setValue(jsonArray.getString(3));
funds.add(fund);
}
复制代码
通过上面的简单操作,小木舟就可以在河中畅快的左右摇摆,可以浏览各页的基金详情列表。
后续可以将获取的数据自行存放数据库中,根据自己的需要进行相关的展示,也可以深入的分析个人收藏的基金动态变化信息。
基金代码 | 基金名称 | 最新净值 |
---|---|---|
005477 | 长安鑫禧灵活配置混合A | 0.8040 |
005478 | 长安鑫禧灵活配置混合C | 0.7982 |
005343 | 长安裕盛灵活配置混合A | 1.1877 |
万事开头难,但是现如今如同站在巨人的肩膀上摘苹果,相对轻松些,沿着优秀的方向学习、钻研,跟随洪流前进,小木舟不会停止不前,哪怕我们没有了船桨,也会在洪流中勇往直前。
复制代码
【参考文章】 juejin.cn/post/703083…