Python开源数据源清单
AKShare 项目
AKShare 是基于 Python 的财经数据接口库,目的是实现对股票、期货、期权、基金、外汇、债券、指数、加密货币等金融产品的基本面数据、实时和历史行情数据、衍生数据从数据采集、数据清洗到数据落地的一套工具,主要用于学术研究目的。
AKShare 的特点是获取的是相对权威的财经数据网站公布的原始数据,通过利用原始数据进行各数据源之间的交叉验证,进而再加工,从而得出科学的结论。
AKShare 的特色
- AKShare 主要改进如下:
- 代码语法符合 PEP8 规范,数据接口的命名统一;
- 最佳支持 Python 3.12 及其以上版本;
- 提供最佳的文档支持,每个数据接口均提供详细的说明和示例,只需要复制粘贴就可以下载数据;
- 持续维护由于目标网页变化而导致的部分数据接口运行异常问题;
- 持续更新财经数据接口,同时优化源代码;
- 提供完善的接口文档,提高 AKShare 的易用性;
- 对于非 Python 用户,提供 HTTP API 接口工具 AKTools。
Aktools
AKTools 是一款用于快速搭建基于 AKShare 开源财经数据接口库的 HTTP API 的工具,通过 AKTools 可以用一行命令来启动 HTTP 服务,从而让原本专属服务于 Python 用户的开源财经数据接口库 AKShare的使用 突破编程语言的限制。无论您使用的是 C/C++、Java、Go、Ruby、PHP、Rust、R、JavaScript 等编程语言都可以快速、轻松获取财经数据,助力您更好地展开数据科学工作。
efinance
efinance
是由个人打造的用于获取股票、基金、期货数据的免费开源 Python 库,你可以使用它很方便地获取数据以便更好地服务于个人的交易系统需求。
新浪财经
通过爬虫获取,需要设置headers属性Referer:https://finance.sina.com.cn
缺点
- 历史股价数据不够完整,只能获取最近1023个数据节点。
优点
- 速度非常快。
- 可以获取行情图片。
- 返回JSON格式的数据,容易处理。
- 可以获取历史的分价图数据和分时买卖交易列。
获取实时股票行情
http 地址:http://hq.sinajs.cn/list=sh601006,sh600004
返回JSON实时数据,以逗号隔开相关数据,数据依次是:
- 股票名称
- 今日开盘价
- 昨日收盘价
- 当前价格
- 今日最高价
- 今日最低价
- 竞买价
- 竞卖价
- 成交股数
- 成交金额
- 买1手
- 买1报价
- 买2手
- 买2报价
- ...
- 买5报价
- ...
- 卖5报价
- 日期
- 时间
注意:新浪区分沪深是以`sh`和`sz`区分。
获取各个时间段行情图
以二进制图片的方式返回结果
- 分时线的查询
https://image.sinajs.cn/newchart/min/n/[市场][股票代码].gif
- 日K线查询
https://image.sinajs.cn/newchart/daily/n/[市场][股票代码].gif
- 周K线查询
https://image.sinajs.cn/newchart/weekly/n/[市场][股票代码].gif
- 月K线查询
https://image.sinajs.cn/newchart/monthly/n/[市场][股票代码].gif
--示例
https://image.sinajs.cn/newchart/daily/n/sh601006.gif
https://image.sinajs.cn/newchart/min/n/sh000001.gif
获取K线数据
数据接口地址:https://money.finance.sina.com.cn/quotes_service/api/json_v2.php/CN_MarketData.getKLineData?symbol=[市场][股票代码]&scale=[周期]&ma=no&datalen=[长度]
https://money.finance.sina.com.cn/quotes_service/api/json_v2.php/CN_MarketData.getKLineData?symbol=sz002095&scale=60&ma=no&datalen=1023
- 返回结果:
获取5、10、30、60分钟JSON数据:
- `day`:日期
- `open`:开盘价
- `high`:最高价
- `low`:最低价
- `close`:收盘价
- `volume`:成交量
获取复权数据
服务地址:https://finance.sina.com.cn/realstock/company/[市场][股票代码]/[复权].js?d=[日期]
复权选项
qianfuquan
:前复权houfuquan
:后复权
示例:https://finance.sina.com.cn/realstock/company/sz002095/qianfuquan.js?d=2015-06-16
返回结果
股票日期的股价JSON数据。
注意:
- 无法获取未复权的数据。
- 需要对返回数据进行处理才能使用,新浪会在末尾加入注释语句,打乱日期数据,key值需要自行加入双引号,否则无法解析JSON。
- 由于新浪的周线和月线数据,是以股票日线所有数据直接计算得到的,所以无法直接通过API获取周线和月线数据,需要自行处理。
获取历史成交明细
服务地址:https://market.finance.sina.com.cn/downxls.php?date=[日期]&symbol=[市场][股票代码]
https://market.finance.sina.com.cn/downxls.php?date=2015-06-15&symbol=sz002095
返回结果: XLS文件;股票历史成交明细。
获取指定日期范围内的股票分价表
服务地址:https://market.finance.sina.com.cn/pricehis.php?symbol=[市场][股票代码]&startdate=[开始日期]&enddate=[结束日期]
示例:http://market.finance.sina.com.cn/pricehis.php?symbol=sh600900&startdate=2011-08-17&enddate=2011-08-19
返回结果:HTML文本;指定日期范围内的股票分价表。