PythonStock(34)使用AKShare 做股票数据出来,替换现有每日数据,job相关任务,制作基础镜像使用python3.7-slim-stretch,akshare使用 0.9.65 版本
Posted freewebsys
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PythonStock(34)使用AKShare 做股票数据出来,替换现有每日数据,job相关任务,制作基础镜像使用python3.7-slim-stretch,akshare使用 0.9.65 版本相关的知识,希望对你有一定的参考价值。
前言
使用Python开发一个web股票项目。
【github项目地址】:
https://github.com/pythonstock/stock
【知乎专栏地址】:
https://zhuanlan.zhihu.com/pythonstock
【docker hub地址下载】:
https://hub.docker.com/r/pythonstock/pythonstock
【相关stock资料分类】:
http://blog.csdn.net/freewebsys/article/category/7076584
主要使用开发语言是python。
使用的lib库是pandas,tushare,TensorFlow,tornado等。
本文的原文连接是: https://blog.csdn.net/freewebsys/article/details/117434589
1,关于AKShare 概览
AKShare 是基于 Python 的财经数据接口库, 目的是实现对股票、期货、期权、基金、外汇、债券、指数、加密货币等金融产品的基本面数据、实时和历史行情数据、衍生数据从数据采集、数据清洗到数据落地的一套工具, 主要用于学术研究目的.
风险提示:AKShare 开源财经数据接口库所采集的数据皆来自公开的数据源,不涉及任何个人隐私数据和非公开数据。 同时本项目提供的数据接口及相关数据仅用于学术研究,任何个人、机构及团体使用本项目的数据接口及相关数据请注意商业风险。
https://github.com/jindaxiang/akshare
2,安装lib库
pip3 install akshare
apt-get install -y nodejs
akshare 依赖 nodejs,必须安装这个才可以。
#!/usr/local/bin/python3
# -*- coding: utf-8 -*-
import akshare as ak
print(ak.__version__)
可以打印版本就是正常了:
python test_akshare.py
0.6.10
3,股票数据接口
https://www.akshare.xyz/zh_CN/latest/tutorial.html
https://www.akshare.xyz/zh_CN/latest/data/stock/stock.html
股票相关接口调用方法:
实时行情,可以使用
# 实时行情数据
# 接口: stock_zh_a_spot
# 目标地址: http://vip.stock.finance.sina.com.cn/mkt/#hs_a
# 描述: A 股数据是从新浪财经获取的数据, 重复运行本函数会被新浪暂时封 IP, 建议增加时间间隔
# 限量: 单次返回所有 A 股上市公司的实时行情数据
stock_zh_a_spot_df = ak.stock_zh_a_spot()
print(stock_zh_a_spot_df)
# 插入到 mysql 数据库中
common.insert_db(stock_zh_a_spot_df, "stock_zh_a_spot", True, "`symbol`")
但是历史行情使用函数。
TypeError: stock_zh_a_daily() got an unexpected keyword argument 'start_date'
# 报这个错误信息:发现日期参数不管用,直接去掉才可以,python3.6的只支持0.6.10 版本的。
# 需要升级到 python3.7 才可以。
# 历史行情数据
# 日频率
# 接口: stock_zh_a_daily
# 目标地址: https://finance.sina.com.cn/realstock/company/sh600006/nc.shtml(示例)
# 描述: A 股数据是从新浪财经获取的数据, 历史数据按日频率更新; 注意其中的 sh689009 为 CDR, 请 通过 stock_zh_a_cdr_daily 接口获取
# 限量: 单次返回指定 A 股上市公司指定日期间的历史行情日频率数据
# adjust=""; 默认为空: 返回不复权的数据; qfq: 返回前复权后的数据; hfq: 返回后复权后的数据;
stock_zh_a_daily_qfq_df = ak.stock_zh_a_daily(symbol="sz000002", adjust="")
print(stock_zh_a_daily_qfq_df)
# 升级 python3.7 之后,再安装 akshare 就可以支持按照日期查询数据了。
stock_zh_a_daily_qfq_df = ak.stock_zh_a_daily(symbol="sz000002", start_date="20200101", end_date="20210101", adjust="")
print(stock_zh_a_daily_qfq_df)
3,总结
发现 akshare 要求升级python 3.7 以上版本才可以,需要升级基础镜像。
然后 akshare 就可以升级到 0.9.65 的最新版本了。
新版本就可以按照日期进行查询,解决 TypeError: stock_zh_a_daily() got an unexpected keyword argument ‘start_date’ 这个问题了。
折腾几天终于把这个 stock_zh_a_daily 调用通了。可以按照日期进行查询了。
同时代码也提交到了github 上。
https://github.com/pythonstock/stock/commit/d4da492606fb3f5543303cacb9aa85153e670fd7
本文的原文连接是:
https://blog.csdn.net/freewebsys/article/details/117434589
以上是关于PythonStock(34)使用AKShare 做股票数据出来,替换现有每日数据,job相关任务,制作基础镜像使用python3.7-slim-stretch,akshare使用 0.9.65 版本的主要内容,如果未能解决你的问题,请参考以下文章
PythonStock(37)股票系统:Python股票系统发布V2.0版本,改个名字吧,叫Python全栈股票系统2.0,可以实现数据的抓取(akshare),统计分析,数据报表展示。
PythonStock(37)股票系统:Python股票系统发布V2.0版本,改个名字吧,叫Python全栈股票系统2.0,可以实现数据的抓取(akshare),统计分析,数据报表展示。