前言
2022年全球股市普跌,你亏了多少钱?
亏多少我也不知道,我只是想着来采集数据,做个可视化小案例来玩玩
话不多说,咱就直接开始吧
开发环境
- 解释器版本: python 3.8
- 代码编辑器: pycharm 2021.2
- requests: pip install requests
- pandas: pip install pandas
- pyecharts: pip install pyecharts
爬虫实现步骤
一. 思路分析
- 需要采集什么数据?
股票信息 - 数据在哪里?
通过 f12 打开 network(网络面板) 记录网页当中的数据资源的 抓包分析
二. 代码实现
- 发送请求 通过代码的方式访问网站
- 获取数据
- 解析数据 提取数据 把想要的留下来
- 保存数据
代码展示
模块准备
import requests # 发送请求
import csv
1. 发送请求
所有 源码 点击 此处 领取 即可
response = requests.get(url=url)
2. 获取数据
.text: 获取文本内容
.content: 获取二进制数据 (图片/音频/视频)
.json(): {}所包裹的数据 .json()取值 解析数据就会更方便 更简单 字典
json_data = response.json()
3. 解析数据
'''
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:309488165
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
list = json_data['list']
for i in range(0, len(list)):
CODE = list[i]['CODE']
SNAME = list[i]['SNAME']
PRICE = list[i]['PRICE']
PERCENT = list[i]['PERCENT']
UPDOWN = list[i]['UPDOWN']
FIVE_MINUTE = list[i]['FIVE_MINUTE']
OPEN = list[i]['OPEN']
YESTCLOSE = list[i]['YESTCLOSE']
HIGH = list[i]['HIGH']
LOW = list[i]['LOW']
VOLUME = list[i]['VOLUME']
TURNOVER = list[i]['TURNOVER']
HS = list[i]['HS']
try:
LB = list[i]['LB']
except:
LB = ''
WB = list[i]['WB']
ZF = list[i]['ZF']
try:
PE = list[i]['PE']
except:
PE = ''
MCAP = list[i]['MCAP']
TCAP = list[i]['TCAP']
MFSUM = list[i]['MFSUM']
MFRATIO2 = list[i]['MFRATIO']['MFRATIO2']
MFRATIO10 = list[i]['MFRATIO']['MFRATIO10']
print(CODE, SNAME, PRICE, PERCENT, UPDOWN, FIVE_MINUTE, OPEN, YESTCLOSE, HIGH, LOW, VOLUME, TURNOVER, HS, LB, WB, ZF, PE, MCAP, TCAP, MFSUM, MFRATIO2, MFRATIO10)
4. 保存数据
with open('财经.csv', mode='a', newline='', encoding='utf-8') as f:
csv_writer = csv.writer(f)
csv_writer.writerow([CODE, SNAME, PRICE, PERCENT, UPDOWN, FIVE_MINUTE, OPEN, YESTCLOSE, HIGH, LOW, VOLUME, TURNOVER, HS, LB, WB, ZF, PE, MCAP, TCAP, MFSUM, MFRATIO2, MFRATIO10])
可视化代码
1. 读取数据
对此还有疑问的【点击这里】或者文章末尾名片
df = pd.read_csv('网易财经.csv')
2. 准备数据
名称 成交量取出来 转成列表
x = list(df['名称'].values)
y = df['成交量'].values.tolist()
3. 开始绘图
c = (
Bar()
.add_xaxis(x[:10]) # x轴数据
.add_yaxis('成交量情况', y[:10]) # y轴数据
.set_global_opts(
title_opts=opts.TitleOpts(title='成交量图表'), # 设置图表标题
datazoom_opts=opts.DataZoomOpts() # 数据移动轴
)
)
# 生成 可视化的文件
c.render('成交量图表.html')
可视化效果展示
最后
朋友们学习python,有时候不知道怎么学,从哪里开始学。掌握了基本的一些语法或者做了两个案例后,不知道下一步怎么走,不知道如何去学习更加高深的知识。
那么对于这些朋友们,我准备了大量的免费视频教程,PDF电子书籍,以及源代码!直接在文末名片自取即可哦!
今天的分享到这里就结束了
顺便给大家推荐一些Python视频教程,希望对大家有所帮助:
Python零基础教学合集
对文章有问题的,或者有其他关于python的问题,可以在评论区留言或者私信我哦
觉得我分享的文章不错的话,可以关注一下我,或者给文章点赞(/≧▽≦)/