当前位置: 首页 > 后端技术 > Python

用python分析资金!让赚钱赢在起跑线上!

时间:2023-03-25 21:46:07 Python

不理财,钱不理你!python也能帮你理财吗?效果预览累计收益趋势图基本信息结果使用方法:python3+一些第三方库importrequestsimportpandasimportnumpyimportmatplotlibimportlxml配置config.json。code配置基金代码,useCache是否使用缓存。{"code":["002736","003328","003547",],"useCache":true}运行fund_analysis.py实现数据获取原理:点击从天天基金网打开一只基金,打开在chrome开发者工具中查看加载的文件。依次查找,找到了一个js文件,里面有基金的一些基本信息。这是一个js文件。获取累计收益信息,需要在页面上做一些操作,点击累计收益中的3年,观察开发者工具的请求,很容易发现这个数据源是如何获取的。这是json数据。资金利率表在另一页,我们多找几下就可以找到信息源地址。这是html数据。然后通过Hearders的分析,使用request模拟浏览器获取数据(这里不清楚的可以参考之前的文章)。最后在本地保存为缓冲区。以累计收益信息json为例,主要代码如下。filePath=f'./cache/{fundCode}.json'requests_url='http://api.fund.eastmoney.com/pinzhong/LJSYLZS'headers={'user-agent':'Mozilla/5.0(Macintosh;IntelMacOSX10_14_4)AppleWebKit/537.36(KHTML,likeGecko)Chrome/78.0.3904.87Safari/537.36','Accept':'application/json','Referer':f'http://fund.eastmoney.com/{fundCode}.html',}params={'fundCode':f'{fundCode}','indexcode':'000300','type':'try',}requests_page=requests.get(requests_url,headers=headers,params=params)withopen(filePath,'w')asf:json.dump(requests_page.json(),f)数据分析:对于有基本信息的js文件,读取文件为字符串,使用正则表达式获取所需数据。例如,可以使用以下代码获取年收益率。syl_1n=re.search(r'syl_1n\s?=\s?"([^\s]*)"',data).group(1);对于累计yieldjson数据,直接使用json解析,找到需要的数据进行筛选处理。以all_data[基金代码][时间]=累计收益的格式存储,然后通过pandas的DataFrame补上空数据。df=DataFrame(all_data).sort_index().fillna(method='ffill')对于基金利率表html数据,使用xpath分析。xpath路径可以直接用chrome获取。管理费率可参考以下代码。selector=lxml.html.fromstring(data);#管理率mg_rate=selector.xpath('/html/body/div[1]/div[8]/div[3]/div[2]/div[3]/div/div[4]/div/table/tbody/tr/td[2]/text()')[0]数据存储:使用DataFrame中的plot快速绘制,Excel表格中使用to_excel保存.你可以参考下面的代码。#保存数据fig,axes=plt.subplots(2,1)#处理基本信息df2=DataFrame(all_data_base)df2.stack().unstack(0).to_excel(f'result_{time.time()}.xlsx',sheet_name='out')df2.iloc[1:5,:].plot.barh(ax=axes[0],grid=True,fontsize=25)#处理所得df=DataFrame(all_data).sort_index().fillna(method='ffill')df.plot(ax=axes[1],grid=True,fontsize=25)fig.savefig(f'result_{time.time()}.png')汇总数据获取主要是使用爬虫的基本方法,使用requests库。数据的分析和存储主要使用正则表达式、xpath分析库和pandas数据处理库。一只基金的分析远不止这些数据(比如持仓分布、基金经理信息等),这里只是介绍一下,希望能给大家一个思路,有思路或者不懂的请留下留言或私信!本文仅供个人学习交流,请勿用于其他用途!参考