Python爬取股票交易数据代码示例及可视化展示。

文章目录


前言

我住的那个城市绿化面积95%,没错就是股市。

抛开炒股技术不说, 那么多股票数据是不是非常难找,找到之后是不是看着密密麻麻的数据是不是头都大了?今天带大家爬取雪球平台的股票数据并将其可视化。


一、开发环境

解释器版本: python 3.8

代码编辑器: pycharm

二、第三方模块

requests: pip install requests
csv

三、爬虫案例步骤

1.确定url地址(链接地址)

2.发送网络请求

3.数据解析(筛选数据)

4.数据的保存(数据库(mysql\mongodb\redis), 本地文件)

四、爬虫程序全部代码

1.分析网页

打开开发者工具,搜索关键字,找到正确url

2.导入模块

python 复制代码
import requests     # 发送网络请求
import csv

3.请求数据

python 复制代码
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()

4.解析数据

python 复制代码
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)

5.翻页

对比1、2、3页数据url,找到规律

python 复制代码
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'

6.保存数据

python 复制代码
file = open('data2.csv', mode='a', encoding='utf-8', newline='')
csv_write = csv.DictWriter(file, fieldnames=['股票代码','股票名称','当前价','涨跌额','涨跌幅','年初至今','成交量','成交额','换手率','市盈率(TTM)','股息率','市值'])
csv_write.writeheader()
file.close()

五、实现效果


六、数据可视化全部代码

1.导入数据

python 复制代码
import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import Bar

2.读取数据

python 复制代码
data_df = pd.read_csv('data2.csv')
df = data_df.dropna()
df1 = df[['股票名称', '成交量']]
df2 = df1.iloc[:20]
print(df2['股票名称'].values)
print(df2['成交量'].values)

3.可视化图表

python 复制代码
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 文件!')

4.效果展示


关于Python技术储备

学好 Python爬虫 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python及Python爬虫 的小伙伴们一点帮助!

👉CSDN大礼包:《Python入门资料&实战源码&安装工具】免费领取安全链接,放心点击

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、Python基础学习视频

② 路线对应学习视频

还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~在这里插入图片描述

③练习题

每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!

因篇幅有限,仅展示部分资料

三、精品Python学习书籍

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

四、Python工具包+项目源码合集
①Python工具包

学习Python常用的开发软件都在这里了!每个都有详细的安装教程,保证你可以安装成功哦!

②Python实战案例

光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。100+实战案例源码等你来拿!

③Python小游戏源码

如果觉得上面的实战案例有点枯燥,可以试试自己用Python编写小游戏,让你的学习过程中增添一点趣味!

五、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

六、Python兼职渠道

而且学会Python以后,还可以在各大兼职平台接单赚钱,各种兼职渠道+兼职注意事项+如何和客户沟通,我都整理成文档了。

这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

相关推荐
牛顿喜欢吃苹果4 分钟前
linux创建虚拟串口
python
数据小爬虫@5 分钟前
如何利用PHP爬虫获取速卖通(AliExpress)商品评论
开发语言·爬虫·php
-Mr_X-11 分钟前
FFmpeg在python里推流被处理过的视频流
python·ffmpeg
一个不秃头的 程序员27 分钟前
代码加入SFTP JAVA ---(小白篇3)
java·python·github
susu108301891132 分钟前
python实现根据搜索关键词爬取某宝商品信息
爬虫·python
GISer_Jing1 小时前
神经网络初学总结(一)
人工智能·深度学习·神经网络
java1234_小锋1 小时前
MyBatis如何处理延迟加载?
java·开发语言
喜欢猪猪1 小时前
Java技术专家视角解读:SQL优化与批处理在大数据处理中的应用及原理
android·python·adb
海绵波波1071 小时前
flask后端开发(1):第一个Flask项目
后端·python·flask
林的快手1 小时前
209.长度最小的子数组
java·数据结构·数据库·python·算法·leetcode