获取所有a股上市公司代码

import baostock as bs
import pandas as pd

# 登录 Baostock
lg = bs.login()
print(f'登录状态: {lg.error_msg}')

# 获取全量股票基础信息
rs = bs.query_stock_basic()

# 读取数据
data_list = []
while (rs.error_code == '0') & rs.next():
    data_list.append(rs.get_row_data())

df = pd.DataFrame(data_list, columns=rs.fields)

# --------------------------
# 筛选条件:
# 1. A股 type=1
# 2. 未退市 outDate == ''
# --------------------------
a_stock = df[
    (df['type'] == '1')
    & (df['outDate'] == '')  # 只保留未退市
].copy()

# --------------------------
# 拆分 code:sh.600000 → exchange=sh,code=600000
# --------------------------
a_stock[['exchange', 'code']] = a_stock['code'].str.split('.', expand=True)

# 最终需要的列
result = a_stock[['exchange', 'code', 'code_name', 'ipoDate']]

# 输出
print(f'✅ 当前正常上市 A 股总数:{len(result)}')
print(result.head(10))

# 导出 CSV
result.to_csv('A股正常上市股票.csv', index=False, encoding='utf-8-sig')
print('✅ 文件已保存:A股正常上市股票.csv')

bs.logout()

数据采集

from gp import GP
import pandas as pd
import time

gp=GP()
df=pd.read_csv('all.csv',dtype={'code':str})

for index,row in  df.iterrows():
    c=time.time()
    df=gp.gupiao(row['exchange'],row['code'],days=180)
    df.to_csv("csv/"+row['code']+".csv")
    se=time.time()-c
    if se<0.2:
        time.sleep(0.2-se)
    print("已完成",row['exchange'],row['code'],"耗时",time.time()-c)

    
此条目发表在None分类目录。将固定链接加入收藏夹。

发表回复