-
2021-01-30 11:30:46
使用如下代码从TuShare下载沪深300每只股票的历史成交记录并按股票、日期保存到本地。主要是为了以后查询方便快速。
import numpy as np
import pandas as pd
import tushare as ts
import datetime
import time
import tushare as ts
import os
data_dir = 'D:\\python_study\\stock_hist_data\\' #下载数据的存放路径
#ts.get_sz50s() #获取上证50成份股 返回值为DataFrame:code股票代码 name股票名称
cal_dates = ts.trade_cal() #返回交易所日历,类型为DataFrame, calendarDate isOpen
#本地实现判断市场开市函数
@date: str类型日期 eg.'2017-11-23'
def is_open_day(date):
if date in cal_dates['calendarDate'].values:
return cal_dates[cal_dates['calendarDate']==date].iat[0,1]==1
return False
#从TuShare获取tick data数据并保存到本地
#@symbol: str类型股票代码 eg.600030
#@date: date类型日期
def get_save_tick_data(symbol, date):
global sleep_time,data_dir
res=True
str_date=str(date)
dir=data_dir+symbol+'\\'+str(date.year)+'\\'+str(date.month)
file=dir+'\\'+symbol+'_'+str_date+'_tick_data.h5'
if is_open_day(str_date):
if not os.path.exists(dir):
os.makedirs(dir)
if not os.path.exists(file):
try:
d=ts.get_tick_data(symbol,str_date,pause=0.1)
except IOError, msg:
print str(msg).decode('UTF-8')
sleep_time=min(sleep_time*2, 128)#每次下载失败后sleep_time翻倍,但是最大128s
print 'Get tick data error: symbol: '+ symbol + ', date: '+str_date+', sleep time is: '+str(sleep_time)
return res
else:
hdf5_file=pd.HDFStore(file, 'w',complevel=4, complib='blosc')
hdf5_file['data']=d
hdf5_file.close()
sleep_time=max(sleep_time/2, 2) #每次成功下载后sleep_time变为一半,但是至少2s
print "Successfully download and save file: "+file+', sleep time is: '+str(sleep_time)
return res
else:
print "Data already downloaded before, skip " + file
res=False
return res
#获取从起始日期到截止日期中间的的所有日期,前后都是封闭区间
def get_date_list(begin_date, end_date):
date_list = []
while begin_date <= end_date:
#date_str = str(begin_date)
date_list.append(begin_date)
begin_date += datetime.timedelta(days=1)
return date_list
#获取感兴趣的所有股票信息,这里只获取沪深300股票
def get_all_stock_id():
stock_info=ts.get_hs300s()
return stock_info['code'].values
#从TuShare下载感兴趣的所有股票的历史成交数据,并保存到本地HDF5压缩文件
#dates=get_date_list(datetime.date(2017,11,6), datetime.date(2017,11,12))
dates=get_date_list(datetime.date(2017,10,30), datetime.date(2017,11,4))
stocks=get_all_stock_id()
for stock in stocks:
for date in dates:
if get_save_tick_data(stock, date):
time.sleep(sleep_time)
因为TuShare并没有提供1分钟线的信息,所以需要根据下载到的每日成交信息生成1分钟线信息。
代码如下: 其实就是不用for和列,直接 newdf = df.resample ... 保存列头一致就好了
#根据分笔成交数据生成1分钟线
#根据分笔成交数据生成1分钟线
def gen_min_line(symbol, date):
global data_dir
str_date=str(date)
dir=data_dir+symbol+'\\'+str(date.year)+'\\'+str(date.month)
tickfile=dir+'\\'+symbol+'_'+str_date+'_tick_data.h5'
minfile=dir+'\\'+symbol+'_'+str_date+'_1min_data.h5'
if (os.path.exists(tickfile)) and (not os.path.exists(minfile)):
hdf5_file=pd.HDFStore(tickfile, 'r')
df=hdf5_file['data']
hdf5_file.close()
print "Successfully read tick file: "+tickfile
if df.shape[0]<10: #TuShare即便在停牌期间也会返回tick data,并且只有三行错误的数据,这里利用行数小于10把那些unexpected tickdata数据排除掉
print "No tick data read from tick file, skip generating 1min line"
return 0
df['time']=str_date+' '+df['time']
df['time']=pd.to_datetime(df['time'])
df=df.set_index('time')
price_df=df['price'].resample('1min').ohlc()
price_df=price_df.dropna()
vols=df['volume'].resample('1min').sum()
vols=vols.dropna()
vol_df=pd.DataFrame(vols,columns=['volume'])
amounts=df['amount'].resample('1min').sum()
amounts=amounts.dropna()
amount_df=pd.DataFrame(amounts,columns=['amount'])
newdf=price_df.merge(vol_df, left_index=True, right_index=True).merge(amount_df, left_index=True, right_index=True)
hdf5_file2=pd.HDFStore(minfile, 'w')
hdf5_file2['data']=newdf
hdf5_file2.close()
print "Successfully write to minute file: "+minfile
dates=get_date_list(datetime.date(2017,8,1), datetime.date(2017,11,12))
stocks=get_all_stock_id()
for stock in stocks:
for date in dates:
gen_min_line(stock, date)
Pandas中的resample,重新采样,是对原样本重新处理的一个方法,是一个对常规时间序列数据重新采样和频率转换的便捷的方法。
更多相关内容 -
tushare数据分析(1)
2020-09-02 18:11:58import tushare as ts ts.set_token('0f05322b2597597318b558ffde25db9bdd0130df6f662bd75b30706b') pro = ts.pro_api() df = pro.query('daily', ts_code='000001.SZ', start_date='20170701', end_date='20200901'...import tushare as ts ts.set_token('0f05322b2597597318b558ffde25db9bdd0130df6f662bd75b30706b') pro = ts.pro_api() df = pro.query('daily', ts_code='000001.SZ', start_date='20170701', end_date='20200901') df.index = df.trade_date
可以画出下面的粗糙开盘价趋势图,但是x轴时间并没有显示出来,此时我们需要将index转换为时间类型,引入pandas包,将index 的object转为时间类型,我们通过df.dtypes方法可以查看所有列的类型。
import matplotlib.pyplot as plt df['open'].plot() plt.ylim(5,18) plt.show()
import pandas as pd df.index = pd.to_datetime(df.index)
绘制收盘价趋势图
plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False plt.figure(figsize=(12,6)) df['close'].plot() plt.ylim(5,18) plt.xlabel("日期") plt.title("20170701-20200901收盘价趋势") plt.ylabel("收盘价") plt.legend() plt.grid() plt.show()
绘制K线图
import talib import numpy as np import mpl_finance as mpl sma_10 = talib.SMA(np.array(df['close']),10) sma_30 = talib.SMA(np.array(df['close']),30) fig = plt.figure(figsize=(24,8)) ax = fig.add_subplot(1,1,1) ax.plot(sma_10,label="10日均线") ax.plot(sma_30,label='30日均线') ax.legend() mpl.candlestick2_ochl(ax,df['open'],df['close'], df['high'],df['low'],width=0.5,colorup='r',colordown='g',alpha=0.75 ) plt.show()
我们主要还是应该掌握如何用tushare获取股票行情数据,使用的是ts.get_hist_data()函数,其
输入参数为:- code:股票代码,即6位数字代码,或者指数代码(sh=上证指数 sz=深圳成指 hs300=沪深300指数 sz50=上证50
zxb=中小板 cyb=创业板) - start:开始日期,格式YYYY-MM-DD
- end:结束日期,格式YYYY-MM-DD
- ktype:数据类型,D=日k线 W=周 M=月 5=5分钟 15=15分钟 30=30分钟 60=60分钟,默认为D
- retry_count:当网络异常后重试次数,默认为3
- pause:重试时停顿秒数,默认为0
返回值说明:
- date:日期
- open:开盘价
- high:最高价
- close:收盘价
- low:最低价
- volume:成交量
- price_change:价格变动
- p_change:涨跌幅
- ma5:5日均价
- ma10:10日均价
- ma20:20日均价
- v_ma5:5日均量
- v_ma10:10日均量
- v_ma20:20日均量
- turnover:换手率[注:指数无此项]
ts.get_stock_basics()
ts.get_hist_data(‘600848’, ktype=‘W’) #获取周k线数据
ts.get_hist_data(‘600848’, ktype=‘M’) #获取月k线数据
ts.get_hist_data(‘600848’, ktype=‘5’) #获取5分钟k线数据
ts.get_hist_data(‘600848’, ktype=‘15’) #获取15分钟k线数据
ts.get_hist_data(‘600848’, ktype=‘30’) #获取30分钟k线数据
ts.get_hist_data(‘600848’, ktype=‘60’) #获取60分钟k线数据
ts.get_hist_data(‘sh’)#获取上证指数k线数据,其它参数与个股一致,下同
ts.get_hist_data(‘sz’)#获取深圳成指k线数据
ts.get_hist_data(‘hs300’)#获取沪深300指数k线数据
ts.get_hist_data(‘sz50’)#获取上证50指数k线数据
ts.get_hist_data(‘zxb’)#获取中小板指数k线数据
ts.get_hist_data(‘cyb’)#获取创业板指数k线数据 - code:股票代码,即6位数字代码,或者指数代码(sh=上证指数 sz=深圳成指 hs300=沪深300指数 sz50=上证50
-
使用 Tushare 数据找到可转换债券的最大成交量
2021-07-07 21:31:39使用 Tushare 数据找到可转换债券的最大成交量 -
【Python量化分析100例】Day1-使用Tushare获取数据
2021-10-24 00:27:30Tushare平台是目前使用python学习量化投资比较好用的而且是免费的一个数据获取平台。主要实现对金融数据从数据采集、清洗加工到数据存储的过程,能够为金融分析人员提供快速、整洁、和多样的便于分析的数据,为他们...1 背景
Tushare平台是目前使用python学习量化投资比较好用的而且是免费的一个数据获取平台。主要实现对金融数据从数据采集、清洗加工 到 数据存储的过程,能够为金融分析人员提供快速、整洁、和多样的便于分析的数据,为他们在数据获取方面极大地减轻工作量,使他们更加专注于策略和模型的研究与实现上。
2 获取未复权数据
2.1 登陆Tushare
通过以下url,用户可以注册到自己的tushare账号,登陆账号之后,在账号的个人首页->接口Token中获取对应的Token进行数据获取的钥匙。
url = "https://tushare.pro/register?reg=399376"
2.2 用pyhton连接tushare
首先,需要安装tushare模块
pip install tushare
连接tushare
import tushare as ts ts.set_token('your token here')#这里填入自己获取的token pro = ts.pro_api()
2.3 用pyhton获取数据
以平安银行为例,获取2018年-2021年平安银行的日线数据:
df = pro.daily(ts_code='000001.SZ', start_date='20180701', end_date='20211022')
数据说明:
交易日每天15点~16点之间。本接口是未复权行情,停牌期间不提供数据。
输入参数:
名称 类型 必选 描述 ts_code str N 股票代码(支持多个股票同时提取,逗号分隔) trade_date str N 交易日期(YYYYMMDD) start_date str N 开始日期(YYYYMMDD) end_date str N 结束日期(YYYYMMDD) 注:日期都填YYYYMMDD格式,比如20181010
输出参数:
名称 类型 描述 ts_code str 股票代码 trade_date str 交易日期 open float 开盘价 high float 最高价 low float 最低价 close float 收盘价 pre_close float 昨收价 change float 涨跌额 pct_chg float 涨跌幅 (未复权,如果是复权请用 通用行情接口 ) vol float 成交量 (手) amount float 成交额 (千元) 也可以通过这种方式进行数据获取:
df = pro.query('daily', ts_code='000001.SZ', start_date='20180701', end_date='20211022')
也可以按照日期获取某一天的全部数据:
df = pro.daily(trade_date='20211022')
多个数据一起获取:
df = pro.daily(ts_code='000001.SZ,600000.SH', start_date='20180701', end_date='20180718')
2.4 查看数据数据
查看拿到的数据类型,发现数据为DataFrame格式,因此数据的操作与pandas一致
>>>type(df) pandas.core.frame.DataFrame
查看前5条数据t
df.head()
同理,查看后5条数据
df.tail()
ts_code trade_date open high low close pre_close change pct_chg 799 000001.SZ 20180706 8.61 8.78 8.45 8.66 8.60 0.06 0.70 800 000001.SZ 20180705 8.62 8.73 8.55 8.60 8.61 -0.01 -0.12 801 000001.SZ 20180704 8.63 8.75 8.61 8.61 8.67 -0.06 -0.69 802 000001.SZ 20180703 8.69 8.70 8.45 8.67 8.61 0.06 0.70 803 000001.SZ 20180702 9.05 9.05 8.55 8.61 9.09 -0.48 -5.28 3 获取复权数据
接口名称:pro_bar
更新时间:股票和指数通常在15点~17点之间,数字货币实时更新,具体请参考各接口文档明细。
描述:目前整合了股票(未复权、前复权、后复权)、指数、数字货币、ETF基金、期货、期权的行情数据,未来还将整合包括外汇在内的所有交易行情数据,同时提供分钟数据。不同数据对应不同的积分要求,具体请参阅每类数据的文档说明。
其它:由于本接口是集成接口,在SDK层做了一些逻辑处理,目前暂时没法用http的方式调取通用行情接口。用户可以访问Tushare的Github,查看源代码完成类似功能。输入参数
名称 类型 必选 描述 ts_code str Y 证券代码,不支持多值输入,多值输入获取结果会有重复记录 api str N pro版api对象,如果初始化了set_token,此参数可以不需要 start_date str N 开始日期 (格式:YYYYMMDD,提取分钟数据请用2019-09-01 09:00:00这种格式) end_date str N 结束日期 (格式:YYYYMMDD) asset str Y 资产类别:E股票 I沪深指数 C数字货币 FT期货 FD基金 O期权 CB可转债(v1.2.39),默认E adj str N 复权类型(只针对股票):None未复权 qfq前复权 hfq后复权 , 默认None,目前只支持日线复权。 freq str Y 数据频度 :支持分钟(min)/日(D)/周(W)/月(M)K线,其中1min表示1分钟(类推1/5/15/30/60分钟) ,默认D。对于分钟数据有600积分用户可以试用(请求2次),正式权限请在QQ群私信群主或积分管理员。 ma list N 均线,支持任意合理int数值。注:均线是动态计算,要设置一定时间范围才能获得相应的均线,比如5日均线,开始和结束日期参数跨度必须要超过5日。目前只支持单一个股票提取均线,即需要输入ts_code参数。 factors list N 股票因子(asset='E'有效)支持 tor换手率 vr量比 adjfactor str N 复权因子,在复权数据时,如果此参数为True,返回的数据中则带复权因子,默认为False。 该功能从1.2.33版本开始生效 获取平安银行前复权数据
df = pro.query('daily', adj = 'qfq', ts_code='000001.SZ', start_date='20210701', end_date='20211022')
4 总结
这是最基础的数据获取教程,代码已同步到github,会慢慢更新~
5 Reference
-
通过tushare获取金融数据的方法
2022-03-22 15:07:45量化投资在近些年来成为了金融行业中的一个热点,在做量化之前需要先获取到市场的行情数据,今天来介绍一个python接口tushare,通过该接口可以获取到大量的金融数据,涵盖了股票,基本面数据,宏观经济数据等,并且...量化投资在近些年来成为了金融行业中的一个热点,在做量化之前需要先获取到市场的行情数据,今天来介绍一个python接口tushare,通过该接口可以获取到大量的金融数据,涵盖了股票,基本面数据,宏观经济数据等,并且在不断的更新中。
1.安装教程
可以将tushare作为python的一个三方库,提前pip在环境之中,之后通过如下代码导入:
import tushare as ts
2.简单函数
1.获取股票的历史行情,可以通过参数设置获取日k线、周k线、月k线,以及5分钟、15分钟、30分钟和60分钟k线数据。不过需要注意的是,该接口只能获取近三年的数据。
ts.get_hist_data()
主要参数说明
code:股票代码,即6位数字代码,或者指数代码(sh=上证指数 sz=深圳成指 hs300=沪深300指数 sz50=上证50 zxb=中小板 cyb=创业板) start:开始日期,格式YYYY-MM-DD end:结束日期,格式YYYY-MM-DD ktype:数据类型,D=日k线 W=周 M=月 5=5分钟 15=15分钟 30=30分钟 60=60分钟,默认为D
代码演示如下:
data = ts.get_hist_data('600519', start='2020-01-01', end='2020-02-01') print(data.head())
2. 基本面数据获取
基本面类数据提供所有股票的基本面情况,包括股本情况、业绩预告和业绩报告等。ts.get_stocks_basic()
获取沪深上市公司基本情况。属性包括:
code,代码
name,名称
industry,所属行业
area,地区
pe,市盈率
outstanding,流通股本(亿)
totals,总股本(亿)
totalAssets,总资产(万)
liquidAssets,流动资产
fixedAssets,固定资产
reserved,公积金
reservedPerShare,每股公积金
esp,每股收益
bvps,每股净资
pb,市净率
timeToMarket,上市日期
undp,未分利润
perundp, 每股未分配
rev,收入同比(%)
profit,利润同比(%)
gpr,毛利率(%)
npr,净利润率(%)
holders,股东人数- 宏观经济数据
宏观经济数据提供国内重要的宏观经济数据,目前只提供比较常用的宏观经济数据,通过简单的接口调用可获取相应的DataFrame格式数据,大项主要包括以下类别:
金融信息数据 国民经济数据 价格指数数据 景气指数数据 对外经济贸易数据
存款利率调用方法
ts.get_deposit_rate()
返回值为: date, deposit_type, rate
贷款利率调用方法
ts.get_loan_rate()
返回值为: date, loan_type, rate
-
AI量化交易(二)——Tushare财经数据框架
2022-02-20 11:24:03Tushare是一个免费、开源的python财经数据接口包,目前为TusharePro版本,主要实现对股票等金融数据从数据采集、清洗加工到数据存储的过程,能够为金融分析人员提供快速、整洁和多样的便于分析的数据。Tushare返回的... -
tushare数据工具使用
2021-10-05 10:42:33今天使用tushare界面中的数据工具来获取数据,发现可以直接在页面中查询出数据并导出csv 而且还可以帮助生成代码 相较于以前自己查询使用接口方便了很多,而且自己写的代码出的错也规避掉了。 下面是使用数据工具... -
量化投资分析-Tushare数据获取
2020-03-28 11:02:33数据源介绍2. Tushare安装3. 数据获取与保存3.1 获取上市公司列表3.2 开市日期获取3.3 获取某一只股票股票的历史数据4. 对tushare进行再封装4. 总结 1. 数据源介绍 在量化投资分析中,数据源始终是最基础部分。有... -
tushare复权数据使用
2020-02-26 15:22:01一直使用tushare数据,感谢米哥的提供,由于一些计算需要用复权数据,最近使用中发现了一些问题,说明如下。 1. tushare数据接口的问题 tushare日线数据有两个接口,一个是日线行情接口daily,一个是复权行情pro_bar... -
Tushare获取积分常规办法
2020-08-27 15:27:53Tushare官网 Tushare官网传送门 获取积分办法总结 注册新用户,获得100分 成功推荐注册一个有效用户,获得50分(通过技术手段获得的积分会被清理) 修改个人真实资料,可获得20积分(小积分,大作用,120/320/520/... -
Tushare期货日线数据的获取,学生党免费
2022-05-02 21:40:57原本看到积分制,心拔凉拔凉的,但好在Tushare对学生免费,只要承诺一个宣传任务就行,于是我顺利的通过tushare获取数据。现在来讲讲tushare获取期货数据的操作。 import pandas as pandas import numpy as np ... -
tushare获取数据方式介绍
2020-02-29 09:59:00get_hist_data():获取个股历史交易数据(包括均线数据),可以通过参数设置获取日k线、周k线、月k线,以及5分钟、15分钟、30分钟和60分钟k线数据。本接口只能获取近3年的日线数据,适合搭配均线数据进行选股和分析。... -
股票数据的获取(tushare)
2022-03-22 17:01:24点开右上角的个人中心有个接口TOKEN,里面的密钥就是你使用tushare接口的明文.token是调取数据的唯一凭证 获取准备 使用pip install tushare 安装,根据自己电脑的配置安装适合的版本,楼主安装的是tushare1.2.73 ... -
用tushare数据工具快速获取股票数据
2022-03-27 14:34:59但我们在做量化金融研究时,有时候会碰到金融数据难以获取或者python代码不会编写等困难,为了解决这一问题,tushare数据库上线了数据工具功能,可以帮助我们快速的获取到想要的股票数据,本文以隆基股份(601012)... -
tushare获取财报数据并存入mysql
2022-04-02 23:37:44tushare数据接口除了常规的股票数据如日线、指数等相关信息,也提供了股票的财务信息。tushare中的fina_indicator接口包含了各种财务相关信息,可以方便读取公司财务指标。tushare账号ID:455337。 -
Python 通过 Tushare Pro 获取财经数据接口
2021-09-27 17:52:59与wind、东财等收费数据源相比,tushare是一个python股票数据源,现已升级到tushare pro版本,新版本在数据稳定性和获取速率上大幅提升。 二、安装python3.x,之后通过命令行窗口下的pip安装pandas和tushare,命令... -
tushare数据分析(2)
2020-09-04 11:53:53import tushare as ts import pymysql import os import docx import time import datetime import warnings from urllib import parse from sqlalchemy import create_engine from docx.shared import Cm, Inches ... -
TuShare -财经数据接口包
2020-11-28 14:15:34获取个股历史交易数据(包括均线数据),可以通过参数设置获取日k线、周k线、月k线,以及5分钟、15分钟、30分钟和60分钟k线数据。本接口只能获取近3年的日线数据,适合搭配均线数据进行选股和分析,如果需要全部历史... -
Tushare最好用的金融数据接口之一
2021-02-23 13:02:33Tushare最好用的金融数据接口之一 作者 l_byll 1. tushare面向人群 当你使用某个接口的时候,你首先要了解的就是它所面向的人群,tushare接口主要面向于从事金融相关的高校,企业和个人,只要对金融感兴趣,或者你所从事... -
Tushare数据本地化多进程版本——如何快速一次性获取全部股票数据
2021-10-18 17:28:41在我自己早期使用tushare进行股票数据获取的时候遇到一个问题:如何快速获取全市场所有股票的行情数据呢? 一般来说,我们可以采用for循环的方式: def Get_stock_basicinfo(): stock_basicinfo = pro.stock_... -
【手把手教你如何从Tushare库下载股票数据,并保存在硬盘当中。第二篇下载存储数据】
2022-03-03 11:11:12手把手教你如何从Tushare库下载股票数据,并保存在硬盘当中。第二篇下载数据前言一、Tushare是什么?二、代码1.引入库2. 如何封装下载逻辑3.下载路径函数3.我们简单的组合起来总结 前言 我之前发过一片关于通过... -
从tushare获取场内ETF基金数据
2022-03-06 15:03:29写了一个使用tushare接口获取ETF基金数据的代码: 代码如下: 导入包 # 导入tushare import tushare as ts # 初始化pro接口 pro = ts.pro_api('tokey')#tushare的TOKEY码 import numpy as np 下面时获取数据和... -
【手把手教你如何从Tushare库下载股票数据,并保存在硬盘当中。第三篇多线程】
2022-03-03 13:38:30手把手教你如何从Tushare库下载股票数据,并保存在硬盘当中。第三篇多线程前言一、Tushare是什么?二、代码1.引入库2.多线程函数比例切割3.多线程的loop逻辑4.我们把函数都拼装起来就完成了总结 前言 我之前发过... -
如何从tushare获取point in time的数据
2021-12-23 21:59:04tushare ID:456497 在资产定价的研究中,我们所使用的数据应该遵循point in time原则,既获取:对应调用日期所能获取的最新数据。听起来简单做起来却不然。一般来说,从原始报表构造的因子(截面,不是时序)有五... -
如何使用tushare获取企业财务数据
2021-12-02 15:45:14tushareID:455958 ...此外可能会存在一分钟限制爬多少次的情况,这时候只要通过time.sleep()函数就可以解决。 获取企业行业、地域 获取资产净利率、资产负债率等 获取不同的指标时要找到对应的函数。 ... -
如何从tushare批量获取交易、财务数据
2021-10-08 21:55:34这里分享一下笔者从tushare批量获取交易、财务数据的代码。一共获取了如下数据:收盘价、涨跌幅、成交量、基本每股收益、总资产周转率、每股净资产、净资产收益率、资产负债率、流动资产/总资产、产权比率、资产总计... -
Tushare获取数据和pyecharts的使用
2019-11-25 22:14:51Tushare获取数据和pyecharts的使用 Tushare获取数据 Tushare官网 Tushare是一个免费、开源的python财经数据接口包。主要实现对股票 等金融数据从数据采集、清洗加工 到 数据存储的过程,能够为金融分析人员提 供快速...