【python】带你采集基金股票数据并作可视化操作

2022-11-03  本文已影响0人  颜狗一只

前言

嗨喽,大家好呀~这里是爱看美女的茜茜呐

又到了学Python时刻~

[图片上传失败...(image-a5fa40-1667454548642)]

开发环境 & 第三方模块:

如何实现案例:

找到数据来源

静态数据: 数据来源 网页导航栏上的地址
动态数据: 单独分析

实现代码:

  1. 发送请求 通过代码的方式 访问一个网站

  2. 获取数据

  3. 解析数据 从 获取下来的数据内容当中 取出我们需要用到的

  4. 保存数据

代码展示

采集数据

导入模块

import requests     # 发送请求 第三方模块
import csv
f = open('你的文件名字.csv', mode='a', encoding='utf-8', newline='')
csv_writer = csv.writer(f)
csv_writer.writerow(['symbol', 'name', 'chg', 'percent', 'current_year_percent', 'volume', 'amount', 'turnover_rate', 'pe_ttm', 'dividend_yield', 'market_capital'])

伪装

发送请求

    response = requests.get(url=url, headers=headers)

获取数据

<Response [403]> <Response [200]>: 请求成功

.text: 文本内容 取出来是一个字符串

.content: 当网页链接为 图片/音频/shi'pin 获取二进制数据

.json(): 如果当数据是{}所包裹起来的时候 取出来就是字典数据

    json_data = response.json()

键:值 键值对

{"A": "啊", "B": "不"}

{data: {count: 4940.....}, error_code: 0, error_description: ""}

解析数据

    data_list = json_data['data']['list']
    for i in range(0, len(data_list)):
        symbol = data_list[i]['symbol']
        name = data_list[i]['name']
        chg = data_list[i]['chg']
        percent = data_list[i]['percent']
        current_year_percent = data_list[i]['current_year_percent']
        volume = data_list[i]['volume']
        amount = data_list[i]['amount']
        turnover_rate = data_list[i]['turnover_rate']
        pe_ttm = data_list[i]['pe_ttm']
        dividend_yield = data_list[i]['dividend_yield']
        market_capital = data_list[i]['market_capital']
        print(symbol, name, chg, percent, current_year_percent, volume, amount, turnover_rate, pe_ttm, dividend_yield, market_capital)

保存数据

        csv_writer.writerow([symbol, name, chg, percent, current_year_percent, volume, amount, turnover_rate, pe_ttm, dividend_yield, market_capital])

效果展示

数据可视化

导入模块

import pandas as pd         # 做表格数据处理模块 第三方的
from pyecharts.charts import Bar    # 可视化模块 第三方模块
from pyecharts import options as opts   # 可视化模块里面的设置模块(图表样式)
# 1. 读取数据
df=pd.read_csv(r'你的文件名字.csv',engine='python')
x = list(df['name'].values)
y = list(df['volume'].values)
y2 = list(df['amount'].values)

c = (
    Bar()
    .add_xaxis(x[:10])
    .add_yaxis("成交额", y[:10])
    .set_global_opts(
        xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-15)),
        title_opts=opts.TitleOpts(title="Bar-旋转X轴标签", subtitle="解决标签名字过长的问题"),
    )
    .render("bar_rotate_xaxis_label.html")
)
# c = (
#     Bar()
#     .add_xaxis(x[:10])
#     .add_yaxis('成交量情况', y[:10])
#     .add_yaxis('成交额情况', y2[:10])
#     .set_global_opts(
#         title_opts=opts.TitleOpts(title='成交量图表'),
#         datazoom_opts=opts.DataZoomOpts()
#     )
# )
# c.render('成交量图表.html')

尾语 💝

感谢你观看我的文章呐~本次航班到这里就结束啦 🛬

希望本篇文章有对你带来帮助 🎉,有学习到一点知识~

躲起来的星星🍥也在努力发光,你也要努力加油(让我们一起努力叭)。

最后,博主要一下你们的三连呀(点赞、评论、收藏),不要钱的还是可以搞一搞的嘛~

不知道评论啥的,即使扣个6666也是对博主的鼓舞吖 💞 感谢 💐

上一篇 下一篇

猜你喜欢

热点阅读