使用 Akshare 批量获取 A 股股票数据并保存到本地

使用 Akshare 批量获取 A 股股票数据并保存到本地

在金融数据分析领域,获取丰富且准确的股票数据是深入研究和策略制定的重要基础。akshare 是一个功能强大的 Python 库,它提供了便捷的接口来获取各类金融数据,包括我们所需的 A 股股票数据。本文将详细介绍如何使用 akshare 实现获取所有 A 股股票数据并将其保存到本地的操作步骤,以便后续进行深入的分析与处理。

一、准备工作

在开始之前,确保已经安装了 akshare 库以及 pandas 库(akshare 依赖 pandas 进行数据处理和存储)。如果尚未安装,可以使用以下命令进行安装:

pip install akshare pandas

二、获取 A 股所有上市公司的代码和名称

首先,我们需要获取所有 A 股上市公司的代码和名称信息,这将作为后续获取每只股票详细数据的基础。使用 aksharestock_info_a_code_name 函数可以轻松实现这一步骤:

import akshare as ak
import pandas as pd

# 获取 A 股所有上市公司的代码和名称
stock_info_a_code_name_df = ak.stock_info_a_code_name()

上述代码中,stock_info_a_code_name_df 是一个 DataFrame 数据结构,其中包含了每只 A 股股票的代码(code 列)和名称(name 列)。

三、指定日期范围

根据我们的需求,指定要获取股票数据的日期范围。这里假设我们要获取从 2000010120250101 的数据,你可以根据实际情况修改这两个日期:

# 指定日期范围,格式为 'YYYYMMDD'
start_date = "20000101"
end_date = "20250101"

四、循环获取每一家公司的股票数据并保存

接下来,我们通过循环遍历之前获取的股票代码和名称信息,逐一获取每只股票的日线行情数据,并将其保存到本地的 CSV 文件中。为了提高代码的稳定性和可读性,我们添加了异常处理机制,以便在获取数据过程中出现错误时能够及时捕获并记录:

# 循环获取每一家公司的股票数据并保存
for index, row in stock_info_a_code_name_df.iterrows():
    stock_code = row['code']
    stock_name = row['name']
    # 组合文件名,例如:贵州茅台 600519.SH.csv
    file_name = f"{stock_name}_{stock_code}.csv"

    try:
        # 获取股票日线行情数据,可根据实际需求换用其他合适的数据接口
        stock_data = ak.stock_zh_a_hist(symbol=stock_code, period="daily", start_date=start_date, end_date=end_date)
        # 将数据保存为 CSV 文件
        stock_data.to_csv('/Users/zjc/Desktop/data/' + file_name, index=False)
        print(f"{index}-{stock_name}{stock_code})的数据已成功保存到 {file_name}")
    except Exception as e:
        print(f"获取 {index}-{stock_name}{stock_code})的数据时出现错误:{str(e)}")

在上述代码中:

  • 对于每只股票,我们首先构建了保存数据的文件名,格式为 股票名称_股票代码.csv
  • 然后使用 aksharestock_zh_a_hist 函数获取指定股票代码在指定日期范围内的日线行情数据。这里的 period="daily" 表示获取的是日线数据,你可以根据需要修改为其他周期数据,如 weekly(周线)、monthly(月线)等。
  • 如果获取数据成功,将数据保存到本地指定路径(这里是 /Users/zjc/Desktop/data/,请根据实际情况修改为你自己的保存路径)的 CSV 文件中,并打印成功保存的信息。
  • 如果在获取数据过程中出现异常,将异常信息打印出来,以便我们排查问题。

五、总结

通过以上步骤,我们成功地使用 akshare 库获取了所有 A 股上市公司在指定日期范围内的股票数据,并将其保存到了本地的 CSV 文件中。这些数据为后续的金融数据分析、股票走势研究以及量化投资策略制定等提供了丰富的素材。

需要注意的是,在实际应用中,由于数据量较大,获取数据的过程可能会比较耗时,并且可能会受到网络状况等因素的影响。同时,akshare 库的数据接口可能会随着数据源的更新而有所变化,因此在使用过程中需要关注 akshare 的官方文档和版本更新信息,以便及时调整代码以适应变化。

希望本文能够帮助到对金融数据获取和处理感兴趣的读者,让大家能够更加便捷地利用 akshare 库开展相关的研究和工作。如果在使用过程中有任何问题或建议,欢迎在评论区留言交流。

以上文案你可以根据实际情况进行调整和修改,如果还有其他补充信息或者特定要求,请随时告诉我,我会进一步完善它。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值