Python爬取雪球股票数据并生成可视化柱状图教程
本文详细介绍如何使用Python从雪球网采集股票实时数据,包括requests请求、数据解析及CSV保存。接着利用pandas处理数据,通过pyecharts库生成成交量柱状图,实现股票数据的可视化展示,适合Python初学者参考。
前言
大家好,我是魔王。
雪球是一个拥有4300万投资者的投资社区,汇聚了众多聪明的投资者。
该平台提供沪深港美全球市场的实时行情,涵盖股票、基金、债券等免费资讯,并支持与投资高手进行实战交流。
模块使用
requests:通过pip install requests安装,用于发送数据请求的第三方模块。
re:正则表达式模块,用于匹配和提取数据。
json:用于处理JSON格式数据。
pandas:用于数据处理和分析。
pyecharts:用于生成可视化图表。
开发环境
Python 3.8 解释器
Pycharm 2021.2 版本
代码实现步骤
- 发送请求访问网站
- 获取数据
- 解析数据(提取数据)
- 保存数据
- 制作柱状图进行简单可视化
代码
# 1. 发送请求 访问网站
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36'
}
url = 'https://xueqiu.com/service/v5/stock/screener/quote/list?page=1&size=30&order=desc&order_by=amount&exchange=CN&market=CN&type=sha&_=1641730868838'
response = requests.get(url=url, headers=headers)
# 2. 获取数据
json_data = response.json()
# 3. 数据解析(筛选数据)
data_list = json_data['data']['list']
for data in data_list:
data1 = data['symbol']
data2 = data['name']
data3 = data['current']
data4 = data['chg']
data5 = data['percent']
data6 = data['current_year_percent']
data7 = data['volume']
data8 = data['amount']
data9 = data['turnover_rate']
data10 = data['pe_ttm']
data11 = data['dividend_yield']
data12 = data['market_capital']
print(data1, data2, data3, data4, data5, data6, data7, data8, data9, data10, data11, data12)
data_dict = {
'股票代码': data1,
'股票名称': data2,
'当前价': data3,
'涨跌额': data4,
'涨跌幅': data5,
'年初至今': data6,
'成交量': data7,
'成交额': data8,
'换手率': data9,
'市盈率(TTM)': data10,
'股息率': data11,
'市值': data12,
}
csv_write.writerow(data_dict)
4. 保存地址
file = open('data2.csv', mode='a', encoding='utf-8', newline='')
csv_write = csv.DictWriter(file, fieldnames=['股票代码','股票名称','当前价','涨跌额','涨跌幅','年初至今','成交量','成交额','换手率','市盈率(TTM)','股息率','市值'])
csv_write.writeheader()
运行效果


数据可视化
data_df = pd.read_csv('data2.csv')
df = data_df.dropna()
df1 = df[['股票名称', '成交量']]
df2 = df1.iloc[:20]
print(df2['股票名称'].values)
print(df2['成交量'].values)
c = (
Bar()
.add_xaxis(df2['股票名称'].values.tolist())
.add_yaxis("股票成交量情况", df2['成交量'].values.tolist())
.set_global_opts(
title_opts=opts.TitleOpts(title="成交量图表 - Volume chart"),
datazoom_opts=opts.DataZoomOpts(),
)
.render("data.html")
)
print('数据可视化结果完成,请在当前目录下查找打开 data.html 文件!')


以上即为Python采集股票数据并制作可视化柱状图的完整内容,更多Python采集股票数据的相关资料,敬请关注本站其他文章。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













