python爬取k线图
斜月 人气:0前言
之前已经讲述了一些关于;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 线数据示例已经给出,个人觉得是非常有价值的,特别是对于做量化的来说,实在是有用的很,这里只是做学习交流来用,如果引发了官方的注意,修改了接口那可能就用不了了,建议官方不要使用中文拼音前缀了。
加载全部内容