千家信息网

python怎么挖掘蛋卷基金投资组合数据分析

发表于:2025-02-19 作者:千家信息网编辑
千家信息网最后更新 2025年02月19日,这篇文章主要介绍"python怎么挖掘蛋卷基金投资组合数据分析"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"python怎么挖掘蛋卷基金投资组合数据分析"文章
千家信息网最后更新 2025年02月19日python怎么挖掘蛋卷基金投资组合数据分析

这篇文章主要介绍"python怎么挖掘蛋卷基金投资组合数据分析"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"python怎么挖掘蛋卷基金投资组合数据分析"文章能帮助大家解决问题。

一、网页分析

1、打开网页

我们随意打开一个蛋卷基金上投资组合的网页,例如:

这里以Microsoft Edge浏览器为例 。

2、查看json

选择"XHR",发现有一个以基金编号命名的文件,单击它,查看请求标头。

点击下载查看详图

GET /djapi/plan/CSI1033 HTTP/1.1Host: danjuanapp.comConnection: keep-alivesec-ch-ua: " Not A;Brand";v="99", "Chromium";v="90", "Microsoft Edge";v="90"Accept: application/json, text/plain, */*sec-ch-ua-mobile: ?0User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36 Edg/90.0.818.62elastic-apm-traceparent: 00-25105e3e8908ba33898b0f6cd57b8a73-c782a0e5122abe33-01Sec-Fetch-Site: same-originSec-Fetch-Mode: corsSec-Fetch-Dest: emptyReferer: https://danjuanapp.com/strategy/CSI1033Accept-Encoding: gzip, deflate, brAccept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6Cookie: device_id=web_Skhu79T_v; acw_tc=2760774a16215745204941604e9286878fd10c566d03eedbbb0eb93c40e0f5; channel=undefined; xq_a_token=ccd9918c5b2c091c2d0dacb2e264963ba5fb7539; Hm_lvt_b53ede02df3afea0608038748f4c9f36=1621307606,1621428116,1621514481,1621574521; Hm_lpvt_b53ede02df3afea0608038748f4c9f36=1621574634; timestamp=1621574634698

发现好像没什么特别的,说不定没有反爬的机制 ,不如试着直接点开这个链接。

点击下载查看详图

原来这里面存的就是基金基本信息的json!
我们观察这个地址:

https://danjuanapp.com/djapi/plan/CSI1033

发现只要更改最后的编号,就可以获得各个基金的基本信息。

二、数据获取

1、观察json的结构

我们观察一下这个json的结构,这里只截取部分片段。

{        "data": {                "plan_code": "CSI1033",                "plan_name": "螺丝钉主动优选组合",                "yield": "65.93",                "yield_name": "成立以来收益",                "yield_middle": "48.03",                "yield_name_middle": "成立以来年化",……                "found_date": "2020-02-03",                "manager_xq_id": "3079173340",                "manager_name": "银行螺丝钉",                "manager_profile_photo": "https://danjuan.aiganggu.com/o2020021580801637267.png",                "invest_time_type": 2,                "invest_time_name": "持有3年以上",                "invest_money_type": 4,                "invest_money_name": "积极增值",                "found_days": 473,                "min_buy_amount": "200",                "plan_derived": {                        "end_date": "2021-05-20",                        "nav_grtd": "-0.03",                        "nav_grl1w": "2.38",……                        "unit_nav": "1.6593",                        "yield_history": [{                                "yield": "-12.02",                                "name": "近3个月"                        }, {                                "yield": "7.40",                                "name": "近6个月"                        }, {                                "yield": "42.25",……

我们发现,所有数据都存在 "data" 下, "data" 里有基金的基本信息,当日净值存在 "plan_derived" 下的 "unit_nav" 里,那么我们只要按照这个顺序从中获取数据即可。

三、代码实现

1、基本操作

a. 需要使用的模块

用requests获取页面,用json库将json文件转化为字典。

import requestsimport json

b. 随便设置一个请求标头

header={    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.104 Safari/537.36'}

c. 获取页面信息

这里的code为基金的代码,用requests获取页面以后读出具体的文本内容,存到page里。

code='CSI1033'url='https://danjuanapp.com/djapi/plan/'+codepage=requests.get(url,headers=header).text

我们把page输出出来检查一下,发现我们想要的都在里面。

点击下载查看详图

d. 导入json

因为所有数据都在data里,所以我们直接进入data内即可。

items=json.loads(page)items=items.get("data")

e. 从json中获取需要的信息

基金的名字

name=items.get('plan_name')

基金的当日净值以及净值的记录日期
这些数据在"plan_derived"内。

value=items.get('plan_derived').get("unit_nav")date=items.get('plan_derived').get("end_date")

2、写一个可以重复使用的函数

我们以code作为传入的参数,把刚才的内容组合起来。

def getfund(code):    url='https://danjuanapp.com/djapi/plan/'+code    page=requests.get(url,headers=header).text    items=json.loads(page)    items=items.get("data")    value=items.get('plan_derived').get("unit_nav")    date=items.get('plan_derived').get("end_date")    name=items.get('plan_name')    print("基金编号:",code,'\n基金名:',name,"\n日期:",date,"净值:",value)

3、完整代码

#by concyclicsimport requestsimport jsonheader={    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.104 Safari/537.36'}danjuan=['CSI1033','CSI1032','CSI1038','CSI1029','CSI1006','CSI1065']danjuan.sort()#获取当天信息def getfund(code):    url='https://danjuanapp.com/djapi/plan/'+code    page=requests.get(url,headers=header).text    items=json.loads(page)    items=items.get("data")    value=items.get('plan_derived').get("unit_nav")    date=items.get('plan_derived').get("end_date")    name=items.get('plan_name')    print("基金编号:",code,'\n基金名:',name,"\n日期:",date,"净值:",value)if __name__=='__main__':    for code in danjuan:        getfund(code)

关于"python怎么挖掘蛋卷基金投资组合数据分析"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。

基金 数据 组合 信息 净值 蛋卷 分析 投资 基金投资 数据分析 代码 内容 日期 知识 网页 详图 页面 观察 文件 结构 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 电子表和不同数据库有什么区别 软件开发公司工作计划 公安局网络安全自查表 计算机网络技术重点学什么 中石化邮箱服务器填什么 软件开发外包如何管理 网络安全方面的实操视频 济南软件开发工作好找吗 怎么学会计算机网络技术 vhdl常用的数据库有哪些 服务器hdd灯亮红灯怎么回事 数据库左右连接和索引 校园网络安全拓扑图设计 诛仙3为什么不能连接服务器 自学软件开发需要考证吗 国家网络安全周报告 什么是公安y数据库 惠普服务器硬盘红色方块灯亮 普陀区网络技术咨询有哪些 定远工业软件开发技术哪家好 美晓西安互联网科技 网络编程与数据库编程注意事项 济南牧之网络技术公司 江西智能化软件开发零售价 网络安全和信息化领域标准 为什么魔兽不能只有一个服务器 吉利汽车互联网科技 数据库index读法 泰坦陨落2服务器修好了吗 定量质谱数据库
0