使用Python获取股票数据

如何使用python获取股票数据

安装anaconda

到Anaconda官网下载后直接安装即可。

使用conda管理虚拟环境

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 创建虚拟环境
conda create --name budd python=3.8

# 激活虚拟环境
conda activate budd

# 退出虚拟环境
conda deactivate

# 列出虚拟环境
conda info --envs

# 删除虚拟环境
conda remove -n venv --all

安装tushare

1
pip install tushare

注册用户并获取token:在用户=>个人主页=>接口token中获取自己用户的token,注意安全起见这个token不要发给任何其他人或公开使用。
这里我将自己的token配置到环境变量中,方便代码开源
编辑 .bash_profile文件,添加如下内容:

1
export TUSHARE_TOKEN="Your token"

然后就可以在代码中通过下面的方式读取环境变量的方式获取token并使用了。

1
os.getenv('TUSHARE_TOKEN')

获取A股股票列表并保存至Excel

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import warnings
from numpy import dsplit
import tushare as ts
import pandas as pd
import matplotlib.pyplot as plt
import os
from pandas import ExcelWriter

token = os.getenv('TUSHARE_TOKEN')
ts.set_token(token)

pro = ts.pro_api()

# 查询当前所有正常上市交易的股票列表
data = pro.stock_basic(exchange='', list_status='L',
fields='ts_code,symbol,name,area,industry,list_date')

# print(data)
with ExcelWriter("All_Stock_A.xlsx") as writer:
data.to_excel(writer)

获取股票基本信息并保存至Excel

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

import warnings
from numpy import dsplit
import tushare as ts
import pandas as pd
import matplotlib.pyplot as plt
import os
from pandas import ExcelWriter

token = os.getenv('TUSHARE_TOKEN')
pro = ts.pro_api(token)

excel_header = ['股票代码', '法人代表', '总经理', '董秘',
'注册资本', '注册日期', '省份', '城市', '公司介绍', '公司主页', '主营业务及产品', '员工人数', '经营范围']

datasz = pro.stock_company(
exchange='SZSE', fields='ts_code,chairman,manager,secretary,reg_capital,setup_date,province,city,introduction,website,employees,main_business,business_scope')
datash = pro.stock_company(
exchange='SSE', fields='ts_code,chairman,manager,secretary,reg_capital,setup_date,province,city,introduction,website,employees,main_business,business_scope')

# print(data)
with ExcelWriter("Stock_Basic_Info.xlsx") as writer:
datash.to_excel(writer, sheet_name='上交所', header=excel_header, index=False)
datasz.to_excel(writer, sheet_name='深交所', header=excel_header, index=False)

更多其他操作请参考官方API文档:https://tushare.pro/document/2