Python使用efinance获取全部股票代码数据

使用的工具包是efinance

efinance github:https://github.com/Micro-sheep/efinance

使用efinance工具获取股票代码的用法如下:

import efinance as ef

ef.stock.get_realtime_quotes() # 获得全部上一个交易日活跃的股票列表
ef.stock.get_quote_history("600519", beg="20200101", end="20210101", ) # 获得600519(茅台),2020-01-01至2021-01-01的全部数据

示例代码

"""
获取全部的股票数据
"""
import efinance as ef
import pandas as pd
import time
from tqdm import tqdm
from loguru import logger


def save_k_data_list(stock_code, k_dataframe):
    """这里博主使用MongoDB保存数据,大家可以换成自己的数据库"""
    import pymongo

    mongo_conn = pymongo.MongoClient(host='localhost', port=27017)
    database_name = "stock_code"
    coll = mongo_conn.get_database(database_name).get_collection("k_line")  # 获得集合
    dict_value = {"_id": stock_code}
    for index, series in k_dataframe.iterrows():
        dict_value[index] = series.to_dict()
    record = coll.find_one({"_id": stock_code})
    if not record:
        coll.insert_one(dict_value)
    else:
        coll.update_one(record, {"$set": dict_value, })


def get_k_data(stock_code, begin="20200101", end="20210101"):
    """
    根据efinance工具包获取股票数据
    :param stock_code:股票代码
    :param begin: 开始日期
    :param end: 结束日期
    :return:
    """
    k_dataframe: pd.DataFrame = ef.stock.get_quote_history(stock_code, beg=begin, end=end, )
    k_dataframe = k_dataframe.iloc[:, :9]
    k_dataframe.columns = ['name', 'code', 'date', 'open', 'close', 'high', 'low', 'volume', 'turnover']
    k_dataframe.index = k_dataframe['date']
    k_dataframe.drop(['name', 'code', 'date'], axis=1, inplace=True)
    save_k_data_list(stock_code, k_dataframe)  # 开始保存数据


def main():
    bond_info = ef.stock.get_realtime_quotes()
    begin_date = "20150101"
    end_date = "202205030"
    for code in tqdm(bond_info['股票代码'], total=bond_info.shape[0]):
        logger.debug("begin_save: {}", code)
        time.sleep(5)
        get_k_data(code, begin_date, end_date)


if __name__ == '__main__':
    main()
  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

呆萌的代Ma

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值