前言
之前已经讲述了一些关于;python
;获取基金的一些信息,最近又有了一些新发现,和大家分享一下,这个是非常重要的内容,非常重要的内容。这个数据也是非常的敏感,在一些搞量化交易的平台上,这些数据都是要收费的,而且数据的质量也不能保障。这个内容就是如何获取股票交易的 k 线数据。
数据来源分析
我是非常欣赏东方某富的,因为同为券商,和别的公司确实不大一样,有这互联网的基因,可以这样说,是因为它的出现改变了一些行业的规则。话不多说,这里以海尔智家为例,抓取一下股票的 k 线数据。
# 页面数据连接
http://quote.eastmoney.com/sh600690.html
我们需要获取如下图所示的红色和绿色柱子的数据,网页上显示的是 svg
的图片,没有办法获取数据,但是我发现有些数据是通过接口访问后台的,在切换 k 线展示的时候,我偶然间发现了这个接口,通过这个接口就可以获取 k 线数据。
一定是在切换 日 k 周 k 月 k 的时候会访问后台接口,如下图所示,就是返回前台的数据,这里我吐槽一下,前端好像请求了后台两次,因为我看到了两个请求,而且返回的数据是一样的。
展示一下访问后台接口的参数:
这里去掉了一些无关紧要的参数,其结果如下:
http://54.push2his.eastmoney.com/api/qt/stock/kline/get?
# 这里传入需要查询的股票代码,需要加上前缀上海市场是 1,深圳市场为 0
secid=1.600690
# 这里类似于 token ,需要传入,不过好像是固定的,每个股票都是一样的
&ut=fa5fd1943c7b386f172d6893dbfba10b
# fields1 和 fields2 类似于查询参数,
# fields1 不晓得是什么意思
&fields1=f1,f2,f3,f4,f5,f6
# fields2 为 日期 开盘价 收盘价 最高价 涨跌幅 价格之类的,别问我怎么知道的,我是一个个试出来的
&fields2=f51,f52,f53,f54,f55,f56,f57,f58,f59,f60,f61
# 这个参数是 k 线的类型 101 为日线 102 为周线以此类推,不能说太多,大家可以去试试就知道全部了
&klt=102
# 是否复权 0不复权 1 前复权 2 后复权
&fqt=1
# 查询数据的开始时间和结束时间,格式为yyyymmdd,结束时间默认为2050年
&beg=0
&end=20500101
# 这个不知道是什么意思
&smplmt=460
# 查询的最大条数
&lmt=1000000
这里再次吐槽一下接口参数的命名,带着明显的中文字母标签。
数据抓取
在之前我们已经分析了数据的接口,可以开始上代码了,依旧使用 requests
来抓取数据然后再打印其结果:
第一步要组装请求据参数,拼装参数 url。
第二步使用 requests 请求参数,解析参数返回结果,进行输出
最后打印的结果如下图所示,这里我采用的是周线数据,所以截止到今天位置,刚好是四个周,一共四行数据。
总结
爬取股票的 k 线数据示例已经给出,个人觉得是非常有价值的,特别是对于做量化的来说,实在是有用的很,这里只是做学习交流来用,如果引发了官方的注意,修改了接口那可能就用不了了,建议官方不要使用中文拼音前缀了。
到此这篇关于python爬虫爬取股票的k线图的文章就介绍到这了,更多相关python爬取k线图内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!