背景
今天我的Python心路历程是 基金实战可视化之指数数据获取和存储。
分析
前面针对股票做了一些实践练习,今天开始实践一下基金方面,首先了解到天天基金网大家用的比较多,故此就从天天基金网获取相关数据的心得输出。
难点是如何快捷方便的批量获取URL。
方案
下面以指数数据获取和存储为例展开练习,从天天基金网爬数据的代码如下:
# 基金数据获取并存储为js文件的打样
def get2js():
# 通过人工访问浏览器进入开发者模式查看该地址
url = "http://fund.eastmoney.com/pingzhongdata/519671.js?v=20210124223803"
content = requests.get(url)
# 获取绝对路径,data为当前文件夹
curpath = os.path.join(os.path.dirname(__file__), 'funddata')
fileName = '519671content.js'
file_object_path = os.path.join(curpath, fileName)
f = open(file_object_path, 'w', encoding='utf-8')
f.write(content.text)
f.close()
return
效果
js文件内容截图如下:
注意事项
需要重点关注的是查找对应基金代码对应数据内容的js文件链接地址。
以天天基金网为例,通过浏览器的开发者功能来获取。
-
进入天天基金网,输入指定代码,如“519671”。
-
F12进入开发者模式,各浏览器略有差异,此处以谷歌为例。
获取url地址的方法:Network----->JS----->Name列找到“519671.js…”----->Headers----->General----->Request URL,复制ulr即可。
截图如下:
-
数据量大的话会比较慢,等待一会会有很多name,找到类似于“519671.js?v=20210124223803”的名字,参数v会根据日期变化(参数v)。
-
拼链接:“http://fund.eastmoney.com/pingzhongdata/”+上面获取的name一起。如“url = “http://fund.eastmoney.com/pingzhongdata/519671.js?v=20210124223803””
-
参考如上代码获取数据并保存为js文件,供后续离线分析之用。
备注:
1)后续就可以直接读取该文件来进行数据分析,避免每次都获取重复数据。
2)其它扩展功能可以见参考连接。
3)后续遇到其它差异化问题的解决方案再做另行介绍。
4)仅限学术交流用途