前言
嗨喽,大家好呀~这里是爱看美女的茜茜呐
又到了学Python时刻~
[图片上传失败...(image-a5fa40-1667454548642)]
开发环境 & 第三方模块:
-
解释器版本: python 3.8
-
代码编辑器: pycharm 2021.2
-
requests: pip install requests
-
pyecharts: pip install pyecharts 数据分析
-
pandas: pip install pandas 数据分析
如何实现案例:
找到数据来源
静态数据: 数据来源 网页导航栏上的地址
动态数据: 单独分析
实现代码:
-
发送请求 通过代码的方式 访问一个网站
-
获取数据
-
解析数据 从 获取下来的数据内容当中 取出我们需要用到的
-
保存数据
代码展示
采集数据
导入模块
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也是对博主的鼓舞吖 💞 感谢 💐
网友评论