如何使用Python爬取基金数据,并可视化显示
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理
以下文章来源于Will的大食堂,作者打饭大叔
前言
美国疫情越来越严峻,大选也进入了最后阶段,受之影响美股指数也在在下行中。最近的A股也在跟随美股没有什么起色,一直在动荡整理之中。玩股票基金的同学们,最近大家的仓位控制的怎么样?为了更好的科学分析基金,今天将和大家一起学习如何使用Python爬取基金数据。
下面我们将一起学习爬取基金数据,在这之前我们先做一些准备工作,配置好我们的环境。这里需要用到几个Python库需要安装:
- requests:它是一个HTTP 库,可方便的进行web访问;
pip install requests
- PyExecJs:它是一个js的执行库,后面我们将会了解到为什么需要这个库;
pip install PyExecJs
- matplotlib和numpy:这两个库用于图形化数据分析,大家可以根据《数字信号处理没有Matlab?用Python一样很爽》进行安装;
- 其他:还需要其他库可根据自己需求进行安装。
根据上面的要求环境配置完成后,就可以进行数据爬取了。
天天基金网是国内知名的基金理财网站,日活用户比较高,有较为专业全面的基金数据,数据更新也较为及时。我们今天就使用Python爬取天天基金网上的数据。
# 天天基金网地址:
https://fund.eastmoney.com
我们进入天天基金网,选取一款基金,我这里就选择银河沪深300价值指数(519671)作为例子。
那么问题来了,要爬取基金数据我们要找到数据在哪儿?
在我们选择的银河沪深300价值指数(519671)基金页面里,按F12打开调试窗口。
在调试窗口中选择Network选项,然后再F5重新载入页面,左侧Name栏将会有各种元素列出来,我们找到519671.js?v=20201026224444并选中,我们在右侧将会看到url地址,如下图。这个地址就是我们获取基金数据的接口。其中,519671是基金代码,20201026224444是当前时间。大家可以按照这个格式根据需要对这两个修改即可。
那么,我们需要爬取的数据是什么样的呢?可以选择Preview选项,如下图,我们就可以看到关于基金的详细数据。因为这里的数据是js格式的,因此我们就需要PyExecJs库解析这部分代码。
以上,我们知道了如何获取基金数据的地址和如何解析基金数据,下面我们就开始使用Python实践一下吧。
import requests
import execjs
import numpy as np
from matplotlib import pyplot as plt
url = "http://fund.eastmoney.com/pingzhongdata/519671.js?v=20201026224444"
content = requests.get(url)
jsContent = execjs.compile(content.text)
name = jsContent.eval('fS_name')
code = jsContent.eval('fS_code')
#单位净值走势数据
netWorthTrendData = jsContent.eval('Data_netWorthTrend')
#累计净值走势数据
ACWorthTrendData = jsContent.eval('Data_ACWorthTrend')
netWorthTrend = [v["y"] for v in netWorthTrendData]
ACWorthTrend = [v[1] for v in ACWorthTrendData]
plt.figure()
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] = False
#单位净值趋势图
plt.subplot(2,1,1)
plt.title(name + " ( " + code + " ) " + "单位净值")
plt.plot(netWorthTrend)
#累计净值趋势图
plt.subplot(2,1,2)
plt.title(name + " ( " + code + " ) " + "累计净值")
plt.plot(ACWorthTrend)
plt.show()
下图就是我们利用爬取的数据画出的单位净值趋势图和累计净值趋势图。
现在我们理解了爬虫了原理,接口中也提供了大量的数据,后面就需要大家根据自己的需求发挥自己的想象,去实现更多丰富的功能,赶快动手试下吧!
特别提醒:投资有风险,入市需谨慎,本文不推荐任何基金或股票,文中所用基金仅供大家学习使用。
如何使用Python爬取基金数据,并可视化显示的更多相关文章
- 毕设之Python爬取天气数据及可视化分析
写在前面的一些P话:(https://jq.qq.com/?_wv=1027&k=RFkfeU8j) 天气预报我们每天都会关注,我们可以根据未来的天气增减衣物.安排出行,每天的气温.风速风向. ...
- python爬取网站数据
开学前接了一个任务,内容是从网上爬取特定属性的数据.正好之前学了python,练练手. 编码问题 因为涉及到中文,所以必然地涉及到了编码的问题,这一次借这个机会算是彻底搞清楚了. 问题要从文字的编码讲 ...
- Python爬取房产数据,在地图上展现!
小伙伴,我又来了,这次我们写的是用python爬虫爬取乌鲁木齐的房产数据并展示在地图上,地图工具我用的是 BDP个人版-免费在线数据分析软件,数据可视化软件 ,这个可以导入csv或者excel数据. ...
- python爬取网站数据保存使用的方法
这篇文章主要介绍了使用Python从网上爬取特定属性数据保存的方法,其中解决了编码问题和如何使用正则匹配数据的方法,详情看下文 编码问题因为涉及到中文,所以必然地涉及到了编码的问题,这一次借这 ...
- python爬取拉勾网数据并进行数据可视化
爬取拉勾网关于python职位相关的数据信息,并将爬取的数据已csv各式存入文件,然后对csv文件相关字段的数据进行清洗,并对数据可视化展示,包括柱状图展示.直方图展示.词云展示等并根据可视化的数据做 ...
- 用Python爬取股票数据,绘制K线和均线并用机器学习预测股价(来自我出的书)
最近我出了一本书,<基于股票大数据分析的Python入门实战 视频教学版>,京东链接:https://item.jd.com/69241653952.html,在其中用股票范例讲述Pyth ...
- python爬取github数据
爬虫流程 在上周写完用scrapy爬去知乎用户信息的爬虫之后,github上star个数一下就在公司小组内部排的上名次了,我还信誓旦旦的跟上级吹牛皮说如果再写一个,都不好意思和你再提star了,怕你们 ...
- 用python爬取微博数据并生成词云
很早之前写过一篇怎么利用微博数据制作词云图片出来,之前的写得不完整,而且只能使用自己的数据,现在重新整理了一下,任何的微博数据都可以制作出来,放在今天应该比较应景. 一年一度的虐汪节,是继续蹲在角落默 ...
- 使用 Python 爬取网页数据
1. 使用 urllib.request 获取网页 urllib 是 Python 內建的 HTTP 库, 使用 urllib 可以只需要很简单的步骤就能高效采集数据; 配合 Beautiful 等 ...
随机推荐
- 使用jpa的注意事项
@Transactional 事务注解 nativeQuery = true表示使用写的sql,不是HQL@Modifying 注解完成修改操作使用jap时,在实体类的类名上面加上 @Entity@T ...
- Ubuntu中卸载node和npm并重装
1.node 和 npm 卸载不干净 #apt-get 卸载 sudo apt-get remove --purge npm sudo apt-get remove --purge nodejs su ...
- golang开发:select多路选择
select 是 Golang 中的一个控制结构,语法上类似于switch 语句,只不过select是用于 goroutine 间通信的 ,每个 case 必须是一个通信操作,要么是发送要么是接收,s ...
- pycharm 配置 github
今天突然想把自己的代码上传到github上去,然后就研究了下pycharm的配置. 首先呢,你得有个github的账号,然后建立一个项目. 然后打开pycharm,选择file->Setting ...
- web框架推导
django 引言 所有的web应用本质上就是一个socket服务端,而用户的浏览器. 软件开发架构 cs架构 bs架构 本质上,bs架构也是cs架构 http协议 网络协议 http协议 数据传输是 ...
- 2020我终于成功搭建了Metasploitable3靶机
0x00前言 在学习metasploit时我们往往需要一个靶场,下面为大家介绍一下如何在虚拟机中安装metasploitable 3靶场.Metasploitable3是Metasploitable2 ...
- Arduino的外部中断
Arduino的中断函数格式为attachInterrupt(interrput,function,mode). attachInterrupt函数用于设置外部中断,有3个参数,interrput表示 ...
- 9.13 考试 T2 区间
删区间 题意: 给出一个长度为
- RHSA-2017:2679-重要: 内核 安全更新(需要重启、存在EXP、代码执行)
[root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) 修复命令: 使用root账号登陆She ...
- mysql物理优化器代价模型分析【原创】
1. 引言 mysql的sql server在根据where condition检索数据的时候,一般会有多种数据检索的方法,其会根据各种数据检索方法代价的大小,选择代价最小的那个数据检索方法. 比如说 ...