Python爬取各类基金数据,以『动图可视化』方式展示基金的涨跌情况

用 Python 爬取各类基金数据并动态展示 去年接触基金,体会到了基金的香(真香),这几天也是过年后开始交易的日子,今天爬取『蛋卷基金』数据,通过pyecharts动图可视化方式展示基金的涨跌情况。 本文将围绕这三点去进行爬取数据,动图可视化展示数据: 近一月涨跌幅前10名 基金各个阶段涨跌幅 近30个交易日净值情况 一、数据获取 1.数据来源 本文的数据来源:『蛋卷基金』 https://danjuanapp.com/ 2.数据分析 接下爬取的数据涉及五大类(五种基金) 股票型基金 . 阅读详情

前言

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。

PS:如有需要Python学习资料的小伙伴可以点击下方链接自行获取

Python免费学习资料、代码以及交流解答点击即可加入


大家好,最近基金把人给跌傻了

 

 

但是又看了看自己投的哪些基金的管理人,都很优秀啊,于是心又稳下来了,今天给大家分享一篇爬取基金数据进行数据可视化的文章,希望有助于大家学习技术和提升认知。
入市需谨慎,理财有风险。

1.基金数据可视化

去年接触基金,体会到了基金的香(真香),今天爬取『蛋卷基金』数据,通过pyecharts动图可视化方式展示基金的涨跌情况。
本文将围绕这三点去进行爬取数据,动图可视化展示数据:

  • 近一月涨跌幅前10名
  • 基金各个阶段涨跌幅
  • 近30个交易日净值情况

2.数据获取

数据来源

本文的数据来源:『蛋卷基金』


https://danjuanapp.com/

数据分析

接下爬取的数据涉及五大类(五种基金)
1.股票型基金
2.混合型基金
3.债券型基金
4.指数型基金
5.QDII型基金


通过抓包分析ajax异步交互链接的规律:

 

  • type是对应的五种基金的代号
  • order_by是对应最近多久的基金涨跌幅排序
'近一周':'1w'
'近一月':'1m'
'近三月':'3m'
'近六月':'6m'
'近1年':'1y'
'近2年':'2y'
'近3年':'3y'
'近5年':'5y'
  • page是对应的页数,从第1页开始

     

     

    备注:『蛋卷基金』这个网站没有反爬!!!,请求不需要cookie!!!
    ok,这些都清楚之后,接下来就可以开始爬取数据了!

3.数据可视化

由于『蛋卷基金』这个网站没有反爬!!!,所以数据爬取和可视化分析放一起了(直接爬取数据后就进行可视化!)

分析1:近一月涨跌幅前10名

爬虫代码


###基金类型
dict_type={"股票型":1,"混合型":3,"债券型":2,"指数型":5,"QDII型":11}
###时间
dict_time={'近一周':'1w','近一月':'1m','近三月':'3m','近六月':'6m','近1年':'1y','近2年':'2y','近3年':'3y','近5年':'5y'}

for key in dict_type:
    url = "https://danjuanapp.com/djapi/v3/filter/fund?type="+str(dict_type[key])+"&order_by=1w&size=10&page=1"
    res = requests.get(url, headers=headers)
    res.encoding = 'utf-8'
    s = json.loads(res.text)
    s = s['data']['items']
    name = []
    value = []
    for i in range(0,len(s)):
        print(s[i]['fd_name']+":"+s[i]['yield'])
        name.append(s[i]['fd_name'])
        value.append(s[i]['yield'])
    ###开始绘图
    pie(name, value, str(key)+"基金涨跌幅", "["+str(key)+"]基金近一月涨跌幅前10名")

饼状图可视化代码


###饼状图
def pie(name,value,picname,tips):
    c = (
        Pie()
            .add(
            "",
            [list(z) for z in zip(name, value)],
            # 饼图的中心(圆心)坐标,数组的第一项是横坐标,第二项是纵坐标
            # 默认设置成百分比,设置成百分比时第一项是相对于容器宽度,第二项是相对于容器高度
            center=["35%", "50%"],
        )
            .set_colors(["blue", "green", "yellow", "red", "pink", "orange", "purple"])  # 设置颜色
            .set_global_opts(
            title_opts=opts.TitleOpts(title=""+str(tips)),
            legend_opts=opts.LegendOpts(type_="scroll", pos_left="70%", orient="vertical"),  # 调整图例位置
        )
            .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
            .render(str(picname)+".html")
    )

这里将饼状图可视化代码封装成函数,绘制五种基金的饼状图只需调用这个函数即可


###开始绘图
pie(name, value, str(key)+"基金涨跌幅", "["+str(key)+"]基金近一月涨跌幅前10名")

1.股票型基金

2.混合型基金

3.债券型基金

4.指数型基金

5.QDII型基金

分析

上图中是五大类基金的选取近一个月涨跌幅最高前10名的基金进行绘图。

同理近一周、近三个月、近一年也可以通过这个代码进行绘制,只需要将参数order_by修改即可


'近一周':'1w'
'近一月':'1m'
'近三月':'3m'
'近六月':'6m'
'近1年':'1y'
'近2年':'2y'
'近3年':'3y'
'近5年':'5y'

分析2:基金各个阶段涨跌幅

上面分析中可以清楚这五类基金近一个月最高的涨跌幅排名情况,下面从排名中选取第一名基金(五类中各选取第一名)分别展示该基金各个阶段的涨跌幅情况

阶段情况:


'近一周':'1w'
'近一月':'1m'
'近三月':'3m'
'近六月':'6m'
'近1年':'1y'
'近2年':'2y'
'近3年':'3y'
'近5年':'5y'

爬虫代码


####分析2:基金各个阶段涨跌幅
def analysis2():
    name =['近1周','近1月','近3月','近6月','近1年','近3年','近5年']
    ##五类基金
    dict_value={}

    for key in dict_type:
        #### 获取排名第一名基金代号
        url = "https://danjuanapp.com/djapi/v3/filter/fund?type="+str(dict_type[key])+"&order_by=1w&size=10&page=1"
        res = requests.get(url, headers=headers)
        res.encoding = 'utf-8'
        s = json.loads(res.text)
        ###取第一名
        fd_code = s['data']['items'][0]['fd_code']

        #### 获取排名第一名基金各个阶段情况
        fu_url = "https://danjuanapp.com/djapi/fund/derived/"+str(fd_code)
        res = requests.get(fu_url, headers=headers)
        res.encoding = 'utf-8'
        s = json.loads(res.text)
        data = s['data']

        valuess=[]

        ####防止基金最长时间不够1年、2年、5年的情况报错,用0填充
        ##近1周
        try:
            valuess.append(data['nav_grl1w'])
        except:
            valuess.append(0)
        ##近1月
        try:
            valuess.append(data['nav_grl1m'])
        except:
            valuess.append(0)
        ##近3月
        try:
            valuess.append(data['nav_grl3m'])
        except:
            valuess.append(0)
        ##近6月
        try:
            valuess.append(data['nav_grl6m'])
        except:
            valuess.append(0)
        ##近1年
        try:
            valuess.append(data['nav_grl1y'])
        except:
            valuess.append(0)
        ##近3年
        try:
            valuess.append(data['nav_grl3y'])
        except:
            valuess.append(0)
        ##近5年
        try:
            valuess.append(data['nav_grl5y'])
        except:
            valuess.append(0)
        ###添加到集合中
        dict_value[key]=valuess
    bars(name,dict_value)

可视化代码


###柱形图
def bars(name,dict_values):

    # 链式调用
    c = (
        Bar(
            init_opts=opts.InitOpts(  # 初始配置项
                theme=ThemeType.MACARONS,
                animation_opts=opts.AnimationOpts(
                    animation_delay=1000, animation_easing="cubicOut"  # 初始动画延迟和缓动效果
                ))
        )
            .add_xaxis(xaxis_data=name)  # x轴
            .add_yaxis(series_name="股票型", yaxis_data=dict_values['股票型'])  # y轴
            .add_yaxis(series_name="混合型", yaxis_data=dict_values['混合型'])  # y轴
            .add_yaxis(series_name="债券型", yaxis_data=dict_values['债券型'])  # y轴
            .add_yaxis(series_name="指数型", yaxis_data=dict_values['指数型'])  # y轴
            .add_yaxis(series_name="QDII型", yaxis_data=dict_values['QDII型'])  # y轴
            .set_global_opts(
            title_opts=opts.TitleOpts(title='涨跌幅', subtitle='李运辰绘制',  # 标题配置和调整位置
                                      title_textstyle_opts=opts.TextStyleOpts(
                                          font_family='SimHei', font_size=25, font_weight='bold', color='red',
                                      ), pos_left="90%", pos_top="10",
                                      ),
            xaxis_opts=opts.AxisOpts(name='阶段', axislabel_opts=opts.LabelOpts(rotate=45)),
            # 设置x名称和Label rotate解决标签名字过长使用
            yaxis_opts=opts.AxisOpts(name='涨跌点'),

        )
            .render("基金各个阶段涨跌幅.html")
    )

分析

从上面动图可以清楚这五类基金第一名基金各个阶段的涨跌幅情况。

有的基金最长时间没有达到3年或者5年,这里使用填充0处理。

分析3:近30个交易日净值情况

同理,上面分析中可以清楚这五类基金近一个月最高的涨跌幅排名情况,下面从排名中选取第一名基金(五类中各选取第一名)分别展示该基金近30个交易日净值情况。

爬虫代码


####分析3:近30个交易日净值情况
def analysis3():
    for key in dict_type:
        #### 获取排名第一名基金代号
        url = "https://danjuanapp.com/djapi/v3/filter/fund?type=" + str(
            dict_type[key]) + "&order_by=1w&size=10&page=1"
        res = requests.get(url, headers=headers)
        res.encoding = 'utf-8'
        s = json.loads(res.text)
        ###取第一名
        fd_code = s['data']['items'][0]['fd_code']

        #### 获取排名第一名基金近30个交易日净值情况
        fu_url = "https://danjuanapp.com/djapi/fund/nav/history/"+str(fd_code)+"?size=30&page=1"
        res = requests.get(fu_url, headers=headers)
        res.encoding = 'utf-8'
        s = json.loads(res.text)
        data = s['data']['items']
        name=[]
        value=[]
        for k in range(0,len(data)):
            name.append(data[k]['date'])
            value.append(data[k]['nav'])

        silder(name, value,key)

可视化代码


###拉伸图
def silder(name,value,tips):
    c = (
        Bar(init_opts=opts.InitOpts(theme=ThemeType.DARK))
            .add_xaxis(xaxis_data=name)
            .add_yaxis(tips, yaxis_data=value)
            .set_global_opts(
            title_opts=opts.TitleOpts(title=str(tips)+"近30个交易日净值情况"),
            datazoom_opts=[opts.DataZoomOpts(), opts.DataZoomOpts(type_="inside")],
        )
            .render(str(tips)+"近30个交易日净值情况.html")
    )

1.股票型

2.混合型

3.债券型

4.指数型

5.QDII型

分析

从上面动图可以清楚这五类基金第一名基金近30个交易日净值情况。

4.总结

以上就是爬取基金数据并通过pyecharts动图可视化方式展示基金的涨跌情况。

围绕这三点去进行爬取数据,动图可视化展示数据:

  • 近一月涨跌幅前10名
  • 基金各个阶段涨跌幅
  • 近30个交易日净值情况
python爬取天天基金历史净值_用Python抓取天天基金网基金历史净值数据 请关注微信公众号:金融数学 FinancialMathematics玩基金的朋友应该都深有体会,2018是相当惨淡的一年,尤其下半年,能够保本就不错了。2019迎来了开门红,从2月11日到14日,连续四个交易日整体翻红,“逢九必涨”,2019是不是可以有些期待呢?“天天基金”网站可以查询基金历史净值信息,这里利用网站提供的数据接口,实现基金净值查询,并做一些简单的分析。数据是否准确,分析是否到位,... 阅读详情

相关推荐

我用Python对去年800只基金的数据分析,发现这几点...

在大家的日常理财当中,对于基金的购买成为了大家日常的理财选择之一,特别是过去的2020年,基金买的好,是非常好的理财方式。小编今天就通过对于基金数据的爬取,并进行简单的分析,来看一下基金的走势,一起来看看吧。 很多人学习python,不知道从何学起。 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。 很多已经做案例的人,却不知道如何去学习更加高深的知识。 那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!QQ群:721195303 0..

930

用 Python 绘制现金流量图 2 :进阶技巧

将csv文件读取入列表,绘制现金流量图。

BOXonline1396529的博客 2616

Python 爬虫实战:爬取基金净值数据并分析

本文以天天基金网为数据源,详细介绍了使用Python爬取基金净值数据的技术方案。通过requests库获取数据,结合BeautifulSoup解析HTML页面和JSON接口,实现单只基金实时净值、历史净值以及多只基金批量数据的爬取。文章提供了完整的数据清洗、分析和可视化方法,包括收益率计算、波动率分析和最大回撤评估等核心指标。同时强调了反爬策略和合规使用要求,确保爬取行为合法合规。该方案为基金投资分析提供了可靠的数据支撑,适用于金融数据分析人员和投资者。

2503_91057718的博客 1867

基金数据爬虫与数据分析

这篇文章主要为大家分享对基金数据的爬取,并通过python对获取的基金数据做一定的数据分析,如净值数据绘图,周均值,月均值的计算,及搜寻处于下降态势的基金,通过这些方法能对基金的买入与卖出提供一定的辅助作用!最后还是建议大家尽量不要盲目相信数据分析结果或者群众引导而进行买入和卖出,一定要结合自身对该基金或者股票的思考来考虑是否进行买入和卖出操作。 目录 文章目录目录1.基金数据爬取1.工具准备:2.数据爬虫流程:3.基金网站的选择:4.数据爬虫:2.基金数据月均值,周均值分析及净值绘图3.搜寻处于下降态势

weixin_44822196的博客 4964

Python爬虫实战:爬取天天基金网基金数据

基金数据包括基金的净值、历史表现、风险等级等信息,是投资者进行基金选择和投资决策的重要依据。本文详细介绍了如何使用Python爬取天天基金网的基金数据,涵盖了从数据获取、解析、存储到反爬虫机制应对等多个方面。天天基金网是国内领先的基金数据提供平台,提供了大量的基金数据,包括基金的历史净值、资产配置、业绩表现等信息。我们可以从天天基金网的首页开始,抓取基金列表,随后提取每个基金的详细数据。爬取到的基金数据可以进行进一步的分析。在得到基金链接后,我们进一步爬取每个基金的详细数据,比如基金的净值、涨跌幅等。

2201_76125261的博客 1230

qdii-value:勘探QDII基金的净值

qdii值 投放QDII基金的净值 注意 未考虑汇率等因素 数值精确参考,不作为任何依据 投资有风险,操作需谨慎 了解学习交流使用 介绍 通过抓取eastmoney / hsbc / bloomberg上基金最近的持仓报告,获取持仓前x股票代码 在投资/新浪财经上查询每只股票当前行情 新浪财经支持A / H /美股,连续低;投资支持的市场范围广 可作为包调用,演示: 安装 Python 3.6+ # pip 直接安装 $ pip install --upgrade git+https://github.com/xiaopc/qdii-value.git#egg=qdii_value # pip 本地开发模式 $ pip install -e . # 使用 setuptools 安装 (develop 为本地开发模式,--record 输出文件列表) $ python setup.py i

用 Python 绘制现金流量图

最近在学习工程经济学,经常要绘制现金流量图。希望能用 Python 更方便地绘制现金流量图。

BOXonline1396529的博客 5729

python获取东方财富个股资金流入流出

python获取东方财富个股资金流入流出

我用Python写了个实时板块资金热力图

这个项目用Python搞定了: ✅数据抓取(AkShare)✅数据处理(Pandas)✅交互式可视化(Plotly)✅Web 界面(Streamlit)✅自动刷新机制一句话总结:用最少的代码,做出了最直观的金融数据可视化!💡对于炒股的朋友,这个工具可以帮助你快速了解市场资金流向,不用再看密密麻麻的表格了!📈🎉编程资料、学习路线图、源代码、软件安装包等!点击这里免费领取。

m0_62283350的博客 3196

国家社科基金数据库爬取与可视化分析.rar

智能爬取国家社科基金项目数据库的资源信息脚本(可移植,不需要做任何改动) 数据分析MySQL语句 数据可视化代码案例 超值资源代码解释,感受不一样的可视化和数据挖掘!

硬件级Dalvik字节码粒度无痕HOOK及VMP取址码定位分析

2.通过硬件读写断点的输出信息 可知pc寄存器就是art解释器的取码地址 直接硬件执行断点在这个pc 即可直接trace所有的smali执行流 通杀所有机型系统。本文即将探讨的是 如何在硬件级别实现dalvik bytecode粒度的无痕拦截技术 并实现鼠标点击一键hook 指哪儿打哪儿 感受 button power 的强大魅力!4.由于硬件断点是同步的 断下后可随时硬件dump下这一瞬间的app内存映像 写入unicorn的内存模拟执行。解释器在解释执行前必会读取内存中的bytecode。

2503_90751789的博客 1085

python爬取各类基金数据,以『动图可视化』方式展示基金的涨跌情况

↑↑↑关注后"星标"简说Python 人人都可以简单入门Python、爬虫、数据分析 简说Python推荐 来源/Python爬虫数据分析挖掘作者/李运辰 大家好,我是...

简说Python的博客 2777

【SLAM】SVO2.0编译运行和论文代码解读

SVO2是我遇到的最难编译的代码了,可能公开版本不能放太鲁棒的代码吧,搞了快一个星期,终于跑起来了。

iwanderu的博客 5973

python源码案例 爬取各类基金数据,以『动图可视化』方式展示基金的涨跌情况

python源码案例 爬取各类基金数据,以『动图可视化』方式展示基金的涨跌情况

m0_37302966的博客 1305

用STM32定时器PWM高级功能驱动步进电机:F103C8T6+TB6600实战教程

本文详细介绍了如何利用STM32F103C8T6微控制器的定时器PWM高级功能驱动TB6600步进电机驱动器,实现高效、灵活的运动控制方案。通过硬件配置、PWM参数计算、运动控制算法及TB6600高级功能应用的全面解析,为工业自动化和精密控制领域提供了实用的技术参考。

game4的博客 186

浮点数加法器设计

一.设计内容及其要求 内容 根据浮点数的运算规则和IEEE754标准,实现浮点数的加法运算器。 要求: 浮点数格式:符号位1位,阶码8位,尾数23位 要求该实验能完整的体现浮点数的运算的五个步骤:对阶、尾数求和、规格化、舍入(要求使用对偶舍入)、溢出判断。 二.基本要素 浮点数 浮点数即实数,实数是所有有理数和无理数的集合。它之所以被称作浮点数,是因为小数点在数中的位置并不是固定的。一个浮点数值分为两部分存储:数值以及小数点在数值中的位置。 计算机中的浮点运算的计算结果一般是不确定的,一块芯片的浮点运算

Phoenix_ZengHao的博客 1万+

Python爬取股票信息,并实现可视化数据

前言 截止2019年年底我国股票投资者数量为15975.24万户, 如此多的股民热衷于炒股,首先抛开炒股技术不说, 那么多股票数据是不是非常难找, 找到之后是不是看着密密麻麻的数据是不是头都大了? 今天带大家爬取雪球平台的股票数据, 并且实现数据可视化 先看下效果图 基本环境配置 python 3.6 pycharm requests csv time 目标地址 import requests url = 'https://xueqiu.com/service/v5/stoc.

Python案例分享,B站视频教程:https://space.bilibili.com/523606542 9124

【Origin+Python】使用External Python批量出图代码参考2

不使用part2 的代码,自己打开一个origin2022的界面。这里主要介绍一些进阶代码以及使用盗版origin要如何。3 批量绘制相同设置的曲线图。然后就是没有水印的图片了。

zeng001201的博客 1908

数据可视化(一)A股三大指数10年涨跌幅比较:数据爬取和整理

闲来无事,做一张A股三大指数10年涨跌对比图。首先爬取数据: 工具: baostock pandas 用baostock可以轻松的获取股票交易数据,这里我主要爬取过去十年A股三大指数的K线数据。 基本思路: 登录系统 利用内置函数获取历史k线数据 打印结果 输出结果到csv文件,方便后续处理 登出系统 代码如下: import baostock as bs import pandas as pd def get_stockdata(stock_code, stock_name, start_time

jason_cdd的博客 1993

32GB Jetson Orin SOM 不能刷机问题排查

拿到了一个新的Orin SOM,当用orin Devkit CVB或定制的CVB不能用Linux_For_Tegra刷机,flash日志(JetPack5.0DP和5.0.1DP都失败了) 2. 确认mb2配置中将CVB的eeprom读取大小设置是否为0 ? 已经确认是正常的 在定制的orin cvb flash上使用Orin devkit som,启动是成功的。但新得到的Orin som并不工作可以排除理由:使用Orin Devkit CVB和Orin SOM(不是Devkit SOM)仍然不能

jzwjzw19900922的博客 1499

vue2 - elementUI表格table树形结构复选框勾选父子联动示例,el-table树状表格tree复选框checkbox多选框全选/反选取消children(当子级全选中,父级自动勾选)

vue2,elementui,el-table树状表格多选,树形结构结合多选框使用,实现单选父子联动全选反选,勾选联动父级勾选,表格多选check父子联动,table表格children如何嵌入复选框,el-table使用多选框与树形数据写一个有半选全选功能的表格,el-table树形表格实现复选框多选效果,表格树状结构多选,每一个row都可以选中并且联动全选按钮,table选父带子选子带父,树形数据与懒加载,Table表格树形结构多选框选中父级时会选中子级,elementUI表格里树形结构嵌套复选框全选全

✅ 精选推荐文章 1万+
上一篇: Python中你所不知道的关于函数的秘密,原来函数这么简单
下一篇: 替代Matplotlib图表,动态交互python可视化:Pyecharts图表汇总
酸菜鱼编程
博客等级 码龄6年 155粉丝 63原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值