如何使用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 等 ...
随机推荐
- Java基础一篇过(四)List这篇就够了
文章更新时间:2020/08/03 一.List介绍 list是Java的一个接口,继承了Collection,常用到的有3个子类实现: ArrayList 底层数据结构是数组.线程不安全 Linke ...
- golang开发:channel使用
channel主要是用于多个goroutine之间通信 channel语法 channel是引用类型,需要实用make来创建channel,如下 make(chan Type, [buffer]) c ...
- Markdown 1.0.1
简介 Markdown 是由 John Gruber 于2004年开发一种轻量级标记语言,它是一个面向web作者的 text-to-HTML 转换工具.Markdown编辑器允许您使用纯文本格式编写, ...
- GAN在seq2seq中的应用 Application to Sequence Generation
Improving Supervised Seq-to-seq Model 有监督的 seq2seq ,比如机器翻译.聊天机器人.语音辨识之类的 . 而 generator 其实就是典型的 seq2s ...
- Python练习题 003:完全平方数
[Python练习题 003]一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少? --------------------------------------- ...
- 【字符串算法】字典树(Trie树)
什么是字典树 基本概念 字典树,又称为单词查找树或Tire树,是一种树形结构,它是一种哈希树的变种,用于存储字符串及其相关信息. 基本性质 1.根节点不包含字符,除根节点外的每一个子节点都包含一个字符 ...
- VID和PID
今天很在一份datasheet上突然看到 VID 和 PID 很奇怪!!还不是很懂!!! 参考:https://blog.csdn.net/gaojinshan/article/details/787 ...
- OneWire应用 单总线温度传感器DS18系列
OneWire DS18S20, DS18B20, DS1822 Temperature DS18B20 The DS18B20 digital thermometer provides 9-bit ...
- Zyan Drench,支持Wifi的Android游戏
下载source - 298 KB 介绍 "雨淋"是一款最初使用Adobe Flash开发的单人游戏(你可以试试谷歌一下"世界上最简单的Flash游戏").它相 ...
- RHSA-2017:2679-重要: 内核 安全更新(需要重启、存在EXP、代码执行)
[root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) 修复命令: 使用root账号登陆She ...