使用AKTools本地部署AKShare财经数据接口库

使用AKTools部署AKShare财经数据接口库,AKShare的介绍见:基于 Python 的财经数据接口库:AKShare-CSDN博客

AKTools 是一款用于快速搭建 AKShare HTTP API 的工具,通过 AKTools 可以利用一行命令来启动 HTTP 服务,从而让原本专属服务于 Python 用户的开源财经数据接口库 AKShare 的使用 突破编程语言的限制。无论您使用的是 C/C++、Java、Go、Rust、Ruby、PHP、JavaScript、R、Matlab、Stata 等编程语言或软件都可以快速、轻松获取财经数据,助力您更好地展开研究和开发工作。

官网:GitHub - akfamily/aktools: AKTools is an elegant and simple HTTP API library for AKShare, built for AKSharers!

手册:AKTools 官方文档

快速部署使用

安装AKTools

pip install aktools

升级AKTools

pip install aktools -U

启动AKTools服务

安装好后,执行下面命令启动服务: 

python -m aktools

如果要让其它机器也能访问,需要绑定ip到0.0.0.0,使用命令: 

python -m aktools --host 0.0.0.0

启动后显示:

python -m aktools --host 0.0.0.0
请访问:http://0.0.0.0:8080/version 来获取最新的库版本信息,确保使用最新版本的 AKShare 和 AKTools
当前的 AKTools 版本为:0.0.89,AKShare 版本为:1.15.73
点击打开 HTTP API 主页:http://0.0.0.0:8080/
点击打开接口导览:http://0.0.0.0:8080/docs
INFO:     Started server process [2004]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:8080 (Press CTRL+C to quit)
INFO:     172.25.176.1:60070 - "GET / HTTP/1.1" 200 OK
INFO:     172.25.176.1:60070 - "GET /favicon.ico HTTP/1.1" 200 OK
INFO:     172.25.176.1:61788 - "GET /docs HTTP/1.1" 200 OK
INFO:     172.25.176.1:61788 - "GET /openapi.json HTTP/1.1" 200 OK
INFO:     172.25.176.1:61788 - "GET /api/public/stock_zh_a_hist HTTP/1.1" 200 OK
INFO:     172.25.176.1:61905 - "GET /api/public/600001 HTTP/1.1" 404 Not Found
INFO:     172.25.176.1:61918 - "GET /api/public/600001 HTTP/1.1" 404 Not Found
INFO:     172.25.176.1:61922 - "GET /api/public/stock_zh_a_hist HTTP/1.1" 200 OK

这样其它机器也可以通过使用ip地址来访问这台AKTools的服务了。比如这台机器的ip地址是172.25.183.186,那么就可以通过这个网址来访问:

http://172.25.183.186:8080/

主要,要根据服务器的ip地址修改网址链接,以上只是一个例子。 

使用AKTools

无参数调用千股千评

比如原来使用ak.stock_comment_em() 来获取 东方财富网-数据中心-特色数据-千股千评 的数据,现在使用AKTolls,直接访问这个地址即可:

http://172.25.183.186:8080/api/public/stock_comment_em

本机访问 

http://127.0.0.1:8080/api/public/stock_comment_em

 输出信息如下:

[{"序号": 1,"代码": "000001","名称": "平安银行","最新价": null,"涨跌幅": null,"换手率": 0,"市盈率": 4.21,"主力成本": 11.4905800646,"机构参与度": 0.5175816,"综合得分": 70.24115075,"上升": -335,"目前排名": 425,"关注指数": 85.6,"交易日": "2025-01-15T00:00:00.000"},{"序号": 2,"代码": "000002","名称": "万  科A","最新价": null,"涨跌幅": null,"换手率": 0,"市盈率": -3.42,"主力成本": 6.8563898546,"机构参与度": 0.4192784,"综合得分": 54.83373013,"上升": -410,"目前排名": 4338,"关注指数": 75.6,"交易日": "2025-01-15T00:00:00.000"},{"序号": 3,"代码": "000004","名称": "国华网安","最新价": null,"涨跌幅": null,"换手率": 0,"市盈率": -37.19,"主力成本": 13.5006343582,"机构参与度": 0.173278,"综合得分": 49.38011126,"上升": 74,"目前排名": 5057,"关注指数": 71.2,"交易日": "2025-01-15T00:00:00.000"},

里面的综合得分、机构参与度、关注指数等数据,都可以提供决策帮助。

参数调用

对于带参数的接口,此处分为两种情况。此处以 ak.stock_zh_a_hist() 接口为例,如果直接访问:http://127.0.0.1:8080/api/public/stock_zh_a_hist 则可以获取带默认参数的数据,如果需要为该接口指定参数,比如获取 symbol="600000" 的股票,则只需要访问:http://127.0.0.1:8080/api/public/stock_zh_a_hist?symbol=600000 即可。 注意此处的 ?symbol=600000 中都不带 " 号,如果需要同时指定多个参数,则只需要访问:http://127.0.0.1:8080/api/public/stock_zh_a_hist?symbol=600000&period=weekly 即可。 

调用浦发银行的默认日数据

网址:

http://172.25.183.186:8080/api/public/stock_zh_a_hist?symbol=600000

输出信息:

[{"日期": "1999-11-10T00:00:00.000","股票代码": "600000","开盘": 29.5,"收盘": 27.75,"最高": 29.8,"最低": 27,"成交量": 1740850,"成交额": 4859102000,"振幅": 28,"涨跌幅": 177.5,"涨跌额": 17.75,"换手率": 54.4},{"日期": "1999-11-11T00:00:00.000","股票代码": "600000","开盘": 27.58,"收盘": 27.71,"最高": 28.38,"最低": 27.53,"成交量": 294034,"成交额": 821582000,"振幅": 3.06,"涨跌幅": -0.14,"涨跌额": -0.04,"换手率": 9.19},{"日期": "2025-01-15T00:00:00.000","股票代码": "600000","开盘": 10.16,"收盘": 10.21,"最高": 10.39,"最低": 10.13,"成交量": 384608,"成交额": 394080520,"振幅": 2.56,"涨跌幅": 0.49,"涨跌额": 0.05,"换手率": 0.13},{"日期": "2025-01-16T00:00:00.000","股票代码": "600000","开盘": 10.29,"收盘": 10.26,"最高": 10.31,"最低": 10.13,"成交量": 111000,"成交额": 113188998,"振幅": 1.76,"涨跌幅": 0.49,"涨跌额": 0.05,"换手率": 0.04}
]

调用调用浦发银行的数据周线

网址:

http://127.0.0.1:8080/api/public/stock_zh_a_hist?symbol=600000&period=weekly

输出:

    {"日期": "2025-01-03T00:00:00.000","股票代码": "600000","开盘": 10.34,"收盘": 10.06,"最高": 10.56,"最低": 10.02,"成交量": 2658623,"成交额": 2736531849,"振幅": 5.21,"涨跌幅": -2.9,"涨跌额": -0.3,"换手率": 0.91},{"日期": "2025-01-10T00:00:00.000","股票代码": "600000","开盘": 10.13,"收盘": 10.13,"最高": 10.37,"最低": 9.81,"成交量": 2394593,"成交额": 2437980129,"振幅": 5.57,"涨跌幅": 0.7,"涨跌额": 0.07,"换手率": 0.82},{"日期": "2025-01-16T00:00:00.000","股票代码": "600000","开盘": 10.06,"收盘": 10.24,"最高": 10.39,"最低": 9.85,"成交量": 1315183,"成交额": 1331291096,"振幅": 5.33,"涨跌幅": 1.09,"涨跌额": 0.11,"换手率": 0.45}
]

可以看到是从1999-11-12开始的周线信息。

Docker部署:AKTools-Docker 版本

下载镜像

# docker pull registry.cn-shanghai.aliyuncs.com/akfamily/aktools:[AKShare 的版本号]
docker pull registry.cn-shanghai.aliyuncs.com/akfamily/aktools:1.15.73

启动镜像

高性能模式

高性能模式为镜像启动后的默认模式,其主要是启动 Gunicorn 作为 WSGI 服务器,提高网络处理的性能,更多资料请参考

常规方式运行:

docker run -p 8080:8080 registry.cn-shanghai.aliyuncs.com/akfamily/aktools:1.15.73

后台运行:

docker run -d -p 8080:8080 registry.cn-shanghai.aliyuncs.com/akfamily/aktools:1.15.73
普通模式

常规方式运行:

docker run -p 8080:8080 registry.cn-shanghai.aliyuncs.com/akfamily/aktools:1.8.95 python -m aktools --host 0.0.0.0 --port 8080

后台运行:

docker run -d -p 8080:8080 registry.cn-shanghai.aliyuncs.com/akfamily/aktools:1.8.95 python -m aktools --host 0.0.0.0 --port 8080

本机访问

http://127.0.0.1:8080/api/public/stock_zh_a_hist

升级镜像

最简单的办法就是启动AKtolls后,查看提示的最新版本号,然后再次docker run的时候直接用最新版本的镜像。

也可以进入镜像,升级AKTools软件:

docker run -it ak_tools:1.15.73 /bin/bash

# 升级 AKShare 到最新版:
pip install akshare -U

退出镜像:exit

找到容器 ID:docker ps -a

docker ps -a
CONTAINER ID   IMAGE                                                       COMMAND                   CREATED          STATUS          PORTS                    NAMES
f352c80dd47f   registry.cn-shanghai.aliyuncs.com/akfamily/aktools:1.8.95   "python -m aktools -…"   12 minutes ago   Up 12 minutes   0.0.0.0:8080->8080/tcp   nifty_margulis

提交修改:

docker commit -m "update akshare to latest" f352c80dd47f ak_tools:1.15.74

这样就将AKTools的镜像升级到1.15.74了(当然目前2025.1.16日最新版本是1.15.73,这是举个例子)

最后利用构建好的新镜像启动新容器:docker run -p 8080:8080 ak_tools:1.15.74

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/67309.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何学习网络安全?有哪些小窍门?

学好网络安全其实没有所谓的捷径,也没有什么小窍门。 入门网络安全首先要有浓厚的学习兴趣,不然很容易就变成了从入门到放弃了。 其次要能静下心,踏踏实实的打好基础。如果你是零基础,建议从Web安全入手,课程难度相对…

测试工程师的linux 命令学习(持续更新中)

1.ls """1.ls""" ls -l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出 ls -l等同于 ll第一列共10位,第1位表示文档类型,d表示目录,-表示普通文件,l表示链接文件。…

K8S 亲和性与反亲和性 深度好文

今天我们来实验 pod 亲和性。官网描述如下: 假设有如下三个节点的 K8S 集群: k8s31master 是控制节点 k8s31node1、k8s31node2 是工作节点 容器运行时是 containerd 一、镜像准备 1.1、镜像拉取 docker pull tomcat:8.5-jre8-alpine docker pull nginx…

Nginx三种不同类型的虚拟主机(基于域名、IP 和端口)

🏡作者主页:点击! Nginx-从零开始的服务器之旅专栏:点击! 🐧Linux高级管理防护和群集专栏:点击! ⏰️创作时间:2025年1月15日13点14分 目录 1. 基于域名的虚拟主机 …

解析OVN架构及其在OpenStack中的集成

引言 随着云计算技术的发展,虚拟化网络成为云平台不可或缺的一部分。为了更好地管理和控制虚拟网络,Open Virtual Network (OVN) 应运而生。作为Open vSwitch (OVS) 的扩展,OVN 提供了对虚拟网络抽象的支持,使得大规模部署和管理…

【Flink系列】9. Flink容错机制

9. 容错机制 在Flink中,有一套完整的容错机制来保证故障后的恢复,其中最重要的就是检查点。 9.1 检查点(Checkpoint) 9.1.1 检查点的保存 1)周期性的触发保存 “随时存档”确实恢复起来方便,可是需要我…

《Keras 3 在 TPU 上的肺炎分类》

Keras 3 在 TPU 上的肺炎分类 作者:Amy MiHyun Jang创建日期:2020/07/28最后修改时间:2024/02/12描述:TPU 上的医学图像分类。 (i) 此示例使用 Keras 3 在 Colab 中查看 GitHub 源 简介 设置 本教程将介…

openssl s_server源码剥离

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 源码指引:github源…

51单片机 DS18B20温度储传感器

DS18B20温度传感器 64-BITROM:作为器件地址,用于总线通信的寻址,是唯一的,不可更改 SCRATCHPAD(暂存器):用于总线的数据交互 EEPROM:用于保存温度触发阈值和配置参数 暂存器 单总线…

[操作系统] 深入理解操作系统的概念及定位

概念 任何计算机系统都包含⼀个基本的程序集合,称为操作系统(OS)。 其核心功能如图片所示,包括: 内核 (Kernel): 内核是操作系统的核心部分,被认为是狭义上的操作系统,直接与硬件打交道。负责进程管理、内…

Java并发编程——线程池(基础,使用,拒绝策略,命名,提交方式,状态)

我是一个计算机专业研0的学生卡蒙Camel🐫🐫🐫(刚保研) 记录每天学习过程(主要学习Java、python、人工智能),总结知识点(内容来自:自我总结网上借鉴&#xff0…

nginx 配置代理,根据 不同的请求头进行转发至不同的代理

解决场景:下载发票的版式文件,第三方返回的是url链接地址,但是服务是部署在内网环境,无法访问互联网进行下载。此时需要进行走反向代理出去,如果按照已有套路,就是根据不同的访问前缀,跳转不同的…

docker在不删除容器的情况下修改端口映射

注意:必须先停止docker服务!!!! 1) 停止容器 2) 停止docker服务(systemctl stop docker) 3) 修改这个容器的hostconfig.json和config.v2.json文件中的端口 先查看容器id docker inspect jenkins 进入该目录 hostcon…

【js进阶】设计模式之单例模式的几种声明方式

单例模式&#xff0c;简言之就是一个类无论实例化多少次&#xff0c;最终都是同一个对象 原生js的几个辅助方式的实现 手写forEch,map,filter Array.prototype.MyForEach function (callback) {for (let i 0; i < this.length; i) {callback(this[i], i, this);} };con…

专题 - STM32

基础 基础知识 STM所有产品线&#xff08;列举型号&#xff09;&#xff1a; STM产品的3内核架构&#xff08;列举ARM芯片架构&#xff09;&#xff1a; STM32的3开发方式&#xff1a; STM32的5开发工具和套件&#xff1a; 若要在电脑上直接硬件级调试STM32设备&#xff0c;则…

-bash: /java: cannot execute binary file

在linux安装jdk报错 -bash: /java: cannot execute binary file 原因是jdk安装包和linux的不一致 程序员的面试宝典&#xff0c;一个免费的刷题平台

【MySQL】使用C语言链接

&#x1f308; 个人主页&#xff1a;Zfox_ &#x1f525; 系列专栏&#xff1a;MySQL 目录 一&#xff1a;&#x1f525; MySQL connect &#x1f98b; Connector / C 使用&#x1f98b; mysql 接口介绍&#x1f98b; 完整代码样例 二&#xff1a;&#x1f525; 共勉 一&#…

平滑算法 效果比较

目录 高斯平滑 效果对比 移动平均效果比较: 高斯平滑 效果对比 右边两个参数是1.5 2 代码: smooth_demo.py import numpy as np import cv2 from scipy.ndimage import gaussian_filter1ddef gaussian_smooth_array(arr, sigma):smoothed_arr = gaussian_filter1d(arr, s…

P3数据结构、数据类型、数字编码、字符编码:保姆级图文详解

文章目录 前言1、数据结构分类1.1、逻辑结构&#xff1a;线性与非线性1.2、物理结构&#xff1a;连续与分散1.3、数据结构的实现方式1.4、数据结构的选择依据 2、基本数据类型2.1、定义与分类2.2、存储形式 3、数字编码3.1、原码、反码与补码3.2、浮点数编码3.3、整数与浮点数区…

解密AIGC三大核心算法:GAN、Transformer、Diffusion Models原理与应用

在当今数字化时代&#xff0c;人工智能生成内容&#xff08;AIGC&#xff09;技术正以前所未有的速度改变着我们的生活和工作方式。从创意无限的文本生成&#xff0c;到栩栩如生的图像创作&#xff0c;再到动听的音乐旋律&#xff0c;AIGC的魔力无处不在。而这一切的背后&#…