这一篇是对我之前股票和期货网抓的补充,如对股票和期货抓取感兴趣,可以参考我的上篇文章:用Excel实现自动获取期货、期权、股票行情及下载历史数据 - 知乎。在做完股票和期货的网抓后,感觉基金也可以一试,便将制作过程写在这篇文章中,供参考。

先看结果,这个是做好的演示视频和样本数据:

基金样本数据链接:https://pan.baidu.com/s/1T0I524wQ3TsnJVZoHm42EQ

提取码:1234

基金数据下载器演示视频:https://www.bilibili.com/video/BV1Wq4y1876P/

第一步,选择数据源。基金方面,经过前期收集资料,发现“天天基金”网数据比较全(可以获得实时行情和历史数据),能满足基本需求,而且网上其余的抓取好像都是在用天天基金的数据源,所以也打算使用天天基金作为抓取数据源。

经初步浏览天天基金的网站,发现大概可以值得抓取的有这么几项,分别附上接口(以代码000001基金为例):

实时行情:http://fund.eastmoney.com/000001.html

历史数据:https://fundf10.eastmoney.com/F10DataApi.aspx?type=lsjz&code=000001&page=1&sdate=20201201&edate=20211201&per=45

新成立基金:https://fund.eastmoney.com/data/FundNewIssue.aspx?t=xcln&sort=jzrgq,desc&y=&page=1,20000

所有股票清单:https://fund.eastmoney.com/js/fundcode_search.js

其中,后三者的接口是通过都是分析请求得来的,返回的都是纯文本html数据,只有第一个实时行情是正常的网页,采用的方法是返回网页源代码然后用正则表达式匹配。

第二步,代码实现。因为抓取的数据源只有一个(天天基金网),而且返回的也是比较干净的数据,因此网抓部分的代码实现并不复杂。但是在抓取的时候,发现天天基金网的内部使用的应该是UTF-8编码,一开始使用更新的Winhttp对象抓取时,发现所有中文汉字字符抓取后返回的数据都变为了???(乱码),之后搜索各种解码方案,无效。最后无意间发现使用较老的xmlhttp对象发送请求,可以返回正常的中文,这个是没想到的。可能winhttp对象在使用时还会有一些转码的问题吧。

核心部分代码(网抓+正则表达式)如下:

此外,与之前的网抓不同的是,基金的网抓中涉及到翻页获取数据的情况(如下图)。目前采用的方案就是通过for循环的嵌套实现,在外层for循环中首先使用一次请求及正则表达式匹配,获取每类基金数据的总页数。之后内层循环再从不同页之间循环访问。

第三步,数据处理及交互界面。交互界面的设计相对简单,沿用了之前的方案,这里不细说。但是基金这部分的数据处理确实值得讲一下。一是在抓取阶段的判断,使用If语句判断基金类型,因为货币型基金是比较特殊的,没有净值的概念,取而代之的是每万份收益。因此抓取时所用的正则表达式也是不一样的。二是获取到了数据后,由于数据源对于货币型基金并没有“日增长率”的数据,因此需要将相关部分写为“无”。三是为数据设计了两种存储方式(在当前工作簿以及新建工作簿)。因为条件和循环比较多,所以涉及到大量的for以及if嵌套,建议一定要写好注释,并做好代码的缩进,不然看起来会非常困难。

软件地址:https://item.taobao.com/item.htm?ft=t&id=666428898403

干货全拿走-用Excel实现自动获取基金行情及下载历史数据相关推荐

  1. 干货全拿走-用Excel制作小市值轮动价值投资选股器

    干货全拿走-用Excel制作小市值轮动价值投资选股器 一. 前言 二. 实现思路 三. 核心代码 四. 注意事项 一.前言 大数据时代,数据分析的价值愈发凸显,数据对于金融市场亦如是.现在越来越多的金 ...

  2. 干货全拿走-用Excel获取上证指数等50+股指行情及历史数据

    一. 前言 二. 实现思路 三. 核心代码 四. 注意事项 一.前言 大数据时代,数据分析的价值愈发凸显,数据对于金融市场亦如是.现在越来越多的金融机构和个人借助专业的软件去做数据分析和获取数据,但是 ...

  3. 若依@Excel注解自动获取导出字段,字典解析

    若依系统中实体类导出字段使用了@Execl 若不是若依系统 最后附有excel接口 如导出加上@Excel(name = "字段名") 需要导出数值的中文解析 则加上dictTyp ...

  4. 用Excel实现自动获取期货、期权、股票行情及下载历史数据

    距离上次发这个贴子已经过去了半年了,期间又在之前的基础上完善细化了多版,可能比下面介绍的又多了些功能,如果要看新的成品的演示和获取软件程序,这里就总结在开头,如果想看细节,请直接下滑: 股票行情.基本 ...

  5. 干货全拿走-用ExcelVBA做个股多模型交叉验证择时交易套利及回测系统

    之前分不同的模块做了多个基于Excel的股票量化模型,具体可以看这篇文章: https://blog.csdn.net/m0_64899365/article/details/126921893?sp ...

  6. 由ISBN自动获取书籍信息——下载可用

    首先需要安装依赖环境,因为代码运行的时候会用到org.apache.http 顺便放一个net.sf.json的依赖包 整理这篇博客的目的是网上的代码有的缺一个类,有的依赖库没给,所以在学的时候费了一 ...

  7. python 小说下载_通过python自动获取小说并下载

    1 importurllib.request2 importos3 4 headers ={5 "User-Agent": "Mozilla/5.0 (Windows N ...

  8. 页面自动获取导入excel内容

    原始页面如下: 选择excel文件后页面自动获取excel内容填充到页面,导入后如图: 实现代码: <script src="https://cdn.bootcss.com/xlsx/ ...

  9. 单元格等于计算机日期,《excel表格怎样自动填写日期》 Excel单元格中自动获取当前日期与时间...

    在excel里如何在单元格内用快捷键使之显示当前日期或时间 Ctrl : 当前日期Ctrl Shift : 当前时间 EXCEL表格中只显示日期不要显示时间 右击"单元格格式"设置 ...

最新文章

  1. maven-assembly-plugin和maven-shade-plugin打包区别及弊端
  2. 微信小程序学习笔记(4)--------框架之逻辑层
  3. 004 Android之其他控件
  4. 北京/上海/杭州 | 蚂蚁金服智能引擎技术事业部招聘知识图谱算法工程师
  5. Rational Rose及RequisitePro安装注意事项
  6. snmp基本介绍--理解OID/MIB/snmp报文类型/snmp版本
  7. SEO学习步骤--SEO入门第一章
  8. 044. asp.net主题之二为主题添加CSS样式和动态加载主题
  9. Sublime Text 一键删除空白行的方法
  10. 如何用手机修改证件照尺寸大小
  11. 苹果手机里微信数据删除怎么恢复?
  12. 逻辑斯谛回归(logistic regression)
  13. 2020年王者荣耀怎么设置英雄装备
  14. 雷电模拟器9如何设置网桥
  15. AlphaFold2源码解析(10)--补充信息1(residue_constants)
  16. 微型计算机的总线分为哪些,计算机总线的分类
  17. 车载网络测试 - UDS诊断篇 - 诊断RID/IOID($2F/$31)
  18. (转)造势满分的摩羯智投都存在哪些问题?
  19. 金牛能源管理信息化案例
  20. moviepy音视频剪辑:TextClip不支持中文字符以及OSError: magick.exe: unable to read font 仿宋_GB2312.ttf的解决办法

热门文章

  1. css3基础-动画案例(没啥实用性,纯粹好玩的)
  2. 非深圳户籍员工退(转)社会保险金指南
  3. 四川川之音:过去一周跨境电商行业发生哪些动态?
  4. TI AM3552开发板(arm cortex A8) 初体验
  5. Ubuntu 更改镜像源(ARM版和AMD版)
  6. v3s kernel-3.4 sys_config.fex 以及调试ov5640 mipi camera
  7. 怎么拍出最真是的自己?
  8. vForum 2014 开放邀请了
  9. c#数组赋初值_c语言数组的定义及赋值
  10. 4g网络什么时候淘汰_5G手机的呼声越来越大,那4G手机还有多久被淘汰?这个时间要记住...