多线程数据下载(akshare)

import akshare as ak
import pandas as pd
from multiprocessing.dummy import Pool as ThreadPool
import datetime
import time


def get_hs300_stock_codes():
    '''
    获取沪深300股票代码列表
    :return:
    '''
    hs300=ak.index_stock_cons_sina("000300")
    codes=hs300['code']
    codes=codes.tolist()
    return codes


def dwon_data(code, period='daily',from_date='20170301', to_date=datetime.date.today().strftime('%Y-%m-%d'),fq='qfq'):
    '''
    下载沪深300成分股历史数据
    :param symbol: 股票代码,可以在 ak.stock_zh_a_spot_em() 中获取
    :param period:choice of {'daily', 'weekly', 'monthly'}
    :param from_date:开始查询的日期
    :param to_date:结束查询的日期
    :param fq:复权,默认返回不复权的数据; qfq: 返回前复权后的数据; hfq: 返回后复权后的数据
    :return:
    '''

    df = ak.stock_zh_a_hist(symbol=code, period=period, start_date=from_date, end_date=to_date,
                                            adjust=fq)

    # 获取
    # df=df.loc[:,['日期','开盘','最高','最低','收盘','成交量']]
    # df.columns=['datetime','open','high','low','close','volume']
    print(df.head())


    # # 构建保存路径与文件名
    # path_file = 'E:\datas\stock\\hs300\data_suorce\%s.csv' % (code)
    #
    # # 保存下载数据
    # df.to_csv(path_file)  # 保存文件
    # print('已导出%s' % (code))


if __name__ == '__main__':

    start_time = time.time()

    # 获取沪深300代码列表
    code = get_hs300_stock_codes()

    # 创建线程池,添加10个线程
    with ThreadPool(10) as pool:
        pool.map_async(dwon_data, code) #加载线程
        pool.close()  #
        pool.join()

    end_time = time.time()
    print('程序运行时间:{:.2f}秒'.format(end_time - start_time))

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

神出鬼没,指的就是我!

必须花钱,数据超好

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

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

打赏作者

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

抵扣说明:

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

余额充值