import yfinance as yf
import os
# 定义股票代码列表
ticker_symbols = [
'512100', '510300', '510500', '510050',
'159910', '159905', '515890', '159916',
'160716', '510880', '159920', '510900',
'513030', '513520', '513500', '164906',
'513050', '512000', '511380', '518880',
'511260','159915'
]
# 创建保存数据的目录(如果不存在)
output_dir = 'historical_data'
os.makedirs(output_dir, exist_ok=True)
# 遍历股票代码列表并下载数据
for ticker in ticker_symbols:
# 根据股票代码前缀确定交易所后缀
if ticker.startswith('51'):
exchange_suffix = '.SS' # 上海证券交易所
else:
exchange_suffix = '.SZ' # 深圳证券交易所
# 构建完整的股票代码
ticker_symbol = f"{ticker}{exchange_suffix}"
# 创建Ticker对象
ticker_obj = yf.Ticker(ticker_symbol)
# 获取历史数据
hist = ticker_obj.history(period='max', interval='1d')
# 检查是否成功获取数据
if hist.empty:
print(f"未能获取股票代码 {ticker_symbol} 的数据。请检查股票代码是否正确或数据是否可用。")
continue # 跳过当前循环,继续下一个股票
# 定义CSV文件路径
filename = f"{output_dir}/{ticker_symbol}_historical_data.csv"
# 保存数据为CSV文件
hist.to_csv(filename)
print(f"股票代码 {ticker_symbol} 的历史数据已保存到 {filename}")
https://finance.yahoo.com/quote/159915.SZ/
之前获取数据是进入网站手动下载的,比较麻烦,现在改成python 自动获取上市以来的行情数据, 前提是可以访问上面的链接哦