前面介绍过怎么获取A股个股的数据《基于Python的指数基金量化投资 - 股票数据源baostock》,里面包含了个股的各种历史数据,包含:股价、市盈率、市净率、成交量、换手率等等。
但是要获得这些个股的数据有个前提,就是要知道个股的名称和对应的证券代码,例如招商银行上市的名称就叫招商银行,对应的证券代码是sh.600036,如果该个股是上交所的股票(包含科创板),则就类似招商银行的证券代码,在数字前加上sh.的前缀,如果该个股是深交所的股票(包含创业板),则在证券代码前加上sz.的前缀,例如海康威视对应的证券代码是sz.002415。
哪怎么获取这些个股的名称和对应的证券代码,baostock没有直接提供获取上市公司名称列表的接口,但可以通过另外一个接口来获得相应的数据,行业分类:query_stock_industry()。
数据返回的的参数如下,包含了更新日期(updateDate)、证券代码(code)、证券名称(code_name)、所属行业(industry)和所属行业类别(industryClassification)。 其中证券代码(code)和证券名称(code_name)就是我们需要的数据,具体格式如下:
query_stock_industry()返回的是一个.csv文件,数据都包含在该.csv文件中。
源码
import baostock as bs
import pandas as pd
lg = bs.login()
print('login respond error_code:'+lg.error_code)
print('login respond error_msg:'+lg.error_msg)
rs = bs.query_stock_industry()
print('query_stock_industry error_code:'+rs.error_code)
print('query_stock_industry respond error_msg:'+rs.error_msg)
industry_list = []
while (rs.error_code == '0') & rs.next():
industry_list.append(rs.get_row_data())
result = pd.DataFrame(industry_list, columns=rs.fields)
result.to_csv("D:/stock_industry.csv", encoding="gbk", index=False)
print(result)
bs.logout()
程序中用到的指数数据如果有问题,大家可以留言获取也可以添加小将前行的微信xjqx_666进行获取,欢迎大家一起交流沟通_
课程参考:基于Python的量化指数基金投资
|