Python爬取股票交易数据并可视化展示
作者:松鼠爱吃饼干 发布时间:2022-02-06 13:13:22
标签:Python,股票,数据爬取,可视化
开发环境
解释器版本: python 3.8
代码编辑器: pycharm 2021.2
第三方模块
requests: pip install requests
csv
爬虫案例的步骤
1.确定url地址(链接地址)
2.发送网络请求
3.数据解析(筛选数据)
4.数据的保存(数据库(mysql\mongodb\redis), 本地文件)
爬虫程序全部代码
分析网页
打开开发者工具,搜索关键字,找到正确url
导入模块
import requests # 发送网络请求
import csv
请求数据
url = f'https://xueqiu.com/service/v5/stock/screener/quote/list?page=1&size=30&order=desc&order_by=amount&exchange=CN&market=CN&type=sha&_=1637908787379'
# 伪装
headers = {
# 浏览器伪装
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36'
}
response = requests.get(url, headers=headers)
json_data = response.json()
解析数据
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)
翻页
对比1、2、3页数据url,找到规律
for page in range(1, 56):
url = f'https://xueqiu.com/service/v5/stock/screener/quote/list?page={page}&size=30&order=desc&order_by=amount&exchange=CN&market=CN&type=sha&_=1637908787379'
保存数据
file = open('data2.csv', mode='a', encoding='utf-8', newline='')
csv_write = csv.DictWriter(file, fieldnames=['股票代码','股票名称','当前价','涨跌额','涨跌幅','年初至今','成交量','成交额','换手率','市盈率(TTM)','股息率','市值'])
csv_write.writeheader()
file.close()
实现效果
数据可视化全部代码
导入数据
import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import Bar
读取数据
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(list(df2['股票名称']))
.add_yaxis("股票成交量情况", list(df2['成交量']))
.set_global_opts(
title_opts=opts.TitleOpts(title="成交量图表 - Volume chart"),
datazoom_opts=opts.DataZoomOpts(),
)
.render("data.html")
)
print('数据可视化结果完成,请在当前目录下查找打开 data.html 文件!')
效果展示
来源:https://blog.csdn.net/m0_48405781/article/details/121640081


猜你喜欢
- 前言replace into平时在开发中很少用到,这次是因为在做一个生成分布式ID的开源项目,调研雅虎推出的一个基于数据库生成唯一id生成方
- 参考官方文档 http://dev.mysql.com/doc/refman/5.7/en/select-into.htmlmysql>
- MaxDB是MySQL AB公司通过SAP认证的数据库。MaxDB数据库服务器补充了MySQL AB产品系列。某些MaxDB特性在MySQL
- 本文实例讲述了Python实现读取字符串按列分配后按行输出。分享给大家供大家参考,具体如下:问题:输入一个字符串和一个数字,数字代表分为几行
- 说明1.windows上安装安卓模拟器,安卓版本5.1以上2.模拟器里下载安装最新的微信6.6.13.最好使用python2.7,pytho
- 使用邻接矩阵实现图及Dijkstra算法# 邻接矩阵实现无向图 Dijkstra算法inf = float("inf")
- click() 对象.click() 使对象被点击。 closed 对象.closed 对象窗口是否已关闭true/false clearT
- 作者:F. Permadi译者:Sheneyan(子乌)英文原文: INTRODUCTION TO JavaScript Functions
- 通过python处理光斑图像1 相关包与图像读取首先需要科学计算必备包numpy和画图包matplotlib.pyplot,我们通过后者进行
- ARIMA模型ARIMA模型的全称是自回归移动平均模型,是用来预测时间序列的一种常用的统计模型,一般记作ARIMA(p,d,q)。ARIMA
- 一、前言1.1.环境python版本:3.6Django版本:1.11.61.2.预览效果最终搭建的blog的样子,基本上满足需求了。框架搭
- 使用pandas导入csv文件内容1. 默认导入在Python中导入.csv文件用的方法是read_csv()。使用read_csv()进行
- 在Python中,字典是通过散列表或说哈希表实现的。字典也被称为关联数组,还称为哈希数组等。也就是说,字典也是一个数组,但数组的索引是键经过
- EXPLAIN 是 MySQL 提供的一种工具,用于分析查询语句的执行计划,即查询优化器是如何决定执行查询语句的。EXPLAIN可以帮助我们
- 本文实例讲述了Python文件及目录操作的方法。分享给大家供大家参考。具体分析如下:在python中对文件及目录的操作一般涉及多os模块,o
- 在网上搜索Linux下安装MySQL的方法时,出现了很多的方法,但是很多的方法很复杂,而且还不一定成功,试了很久终于试验出一种简单的方法,下
- 一、MySQL Server层日志简介一个mysql client发起一个连接请求,处理请求的过程如下图所示:MySQL日志是在MySQL
- 写在前面在开发微信小程序的时候,评论服务模块希望添加上emoji表情,但是emoji表情是4个字节长度的,所以需要进行设置当前项目是JAVA
- django提供文件下载时,若果文件较小,解决办法是先将要传送的内容全生成在内存中,然后再一次性传入Response对象中:def simp
- 本文给出一条 SQL 语句用于展示在同一名服务器上,不同的数据库间查询,注意当前连接用户要对两个库都有权限SQL Server 中 SQL