c/c++语言开发共享写了一个工具分析基金回撤,分享实现过程

最近有一个网友让我帮他写一个工具分析基金回撤情况,前几天项目比较忙就直没动手,今天晚上有点时间,研究了一下。 先把今天的研究成果分享: 要分析基金净值回撤,首先肯定要有基金的净值变化数据。要抓数据肯定是到天天基金网上抓,毕竟人家是专业机构。 我找了一只个人比较喜欢的基金,易方达中小盘混合 (1100 …

  最近有一个网友让我帮他写一个工具分析基金回撤情况,前几天项目比较忙就直没动手,今天晚上有点时间,研究了一下。

先把今天的研究成果分享:

  要分析基金净值回撤,首先肯定要有基金的净值变化数据。要抓数据肯定是到天天基金网上抓,毕竟人家是专业机构。

我找了一只个人比较喜欢的基金,易方达中小盘混合 (110011),在天天基金网站上很容易找到它的历史净值页面:

  https://fundf10.eastmoney.com/jjjz_110011.html

  因为之前抓过天天基金当日基金净值数据,知道它的页面数据是藏在js里面,在浏览器访问页面后,执行js从服务器动态获取再展示到浏览器。

  要知道是哪个js脚本,方法有很多。我用的是谷歌浏览器自带的开发者工具,如下图:

写了一个工具分析基金回撤,分享实现过程

  打开开发者工具的情况下浏览基金净值页面,就看到该页面访问的所有资源网址。数据比较乱,不过关心的只是js,所以按类型排了序。不过可以看出来访问的js也不少,暂时还不好知道是哪一个js包含我要的数据。

  由于默认只显示了第一页数据,所以我就随意点了其它页净值,从访问的资源列表变化情况,很容易发现想要的js网址,如图

写了一个工具分析基金回撤,分享实现过程

  把这些带有callback的js网址拷下来,如下:

https://api.fund.eastmoney.com/f10/lsjz?callback=jquery183018519977574130597_1558194911277&fundcode=110011&pageindex=6&pagesize=20&startdate=&enddate=&_=1558195435735

  从命令参数上猜测fundcode是基金代码,pageindex是净值页面页码,其它参数暂时不知道意义。

  先尝试使用这个网址在浏览器访问看是啥情况:

写了一个工具分析基金回撤,分享实现过程  

  可以看出网站对这个js访问做了控制,不让用户直接在浏览器访问。 由于对于http抓包不大熟悉,不清楚这种情况下要怎么处理,总不至于需要写一个浏览器来抓一个js数据吧。

于是找了一个熟悉抓包的朋友咨询一下。咨询结果明天再说,跟下面这个请求有关。

get /f10/lsjz?callback=jquery183018519977574130597_1558194911277&fundcode=110011&pageindex=4&pagesize=20&startdate=&enddate=&_=1558195568400 http/1.1  host: api.fund.eastmoney.com  connection: keep-alive  user-agent: mozilla/5.0 (windows nt 10.0; win64; x64) applewebkit/537.36 (khtml, like gecko) chrome/69.0.3497.100 safari/537.36  accept: */*  referer: https://fundf10.eastmoney.com/jjjz_110011.html  accept-encoding: gzip, deflate  accept-language: zh-cn,zh;q=0.9

 

 

  

 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/603431.html

(0)
上一篇 2021年5月11日
下一篇 2021年5月11日

精彩推荐