Open cc798 opened 2 months ago
import baostock as bs import pandas as pd import os import datetime
def mkdir(directory): if not os.path.exists(directory): os.makedirs(directory)
class Downloader(object): def init(self, output_dir, date_start='1990-01-01'): self._bs = bs bs.login() self.date_start = date_start self.date_end = datetime.datetime.now().strftime("%Y-%m-%d") self.output_dir = output_dir self.fields = "date,code,open,high,low,close,volume,amount," \ "adjustflag,turn,tradestatus,pctChg,peTTM," \ "pbMRQ,psTTM,pcfNcfTTM,isST"
def exit(self):
bs.logout()
def get_codes_by_date(self, date):
stock_rs = bs.query_all_stock(date)
stock_df = stock_rs.get_data()
print(stock_df)
return stock_df
def run(self):
stock_df = self.get_codes_by_date(self.date_end)
for index, row in stock_df.iterrows():
if 'bj' in row["code"]:
break
print(f'processing {row["code"]} {row["code_name"]}')
df_code = bs.query_history_k_data_plus(row["code"], self.fields,
start_date=self.date_start,
end_date=self.date_end).get_data()
df_code.to_csv(f'{self.output_dir}/{row["code"]}.{row["code_name"]}.csv', `index=False)`
self.exit()
if name == 'main':
mkdir('./stockdata/')
OUTPUT = './stockdata'
downloader = Downloader('./stockdata', date_start='2000-01-01')
downloader.run()
作者方便透露a股数据怎么获取到的吗