Python爬取股票信息,并可视化数据的示例


Posted in Python onSeptember 26, 2020

前言

截止2019年年底我国股票投资者数量为15975.24万户, 如此多的股民热衷于炒股,首先抛开炒股技术不说, 那么多股票数据是不是非常难找, 找到之后是不是看着密密麻麻的数据是不是头都大了?

今天带大家爬取雪球平台的股票数据, 并且实现数据可视化

先看下效果图

Python爬取股票信息,并可视化数据的示例

基本环境配置

  • python 3.6
  • pycharm
  • requests
  • csv
  • time

目标地址

https://xueqiu.com/hq

Python爬取股票信息,并可视化数据的示例

爬虫代码

请求网页

import requests
url = 'https://xueqiu.com/service/v5/stock/screener/quote/list'
response = requests.get(url=url, params=params, headers=headers, cookies=cookies)
html_data = response.json()

解析数据

data_list = html_data['data']['list']
for i in data_list:
 dit = {}
 dit['股票代码'] = i['symbol']
 dit['股票名字'] = i['name']
 dit['当前价'] = i['current']
 dit['涨跌额'] = i['chg']
 dit['涨跌幅/%'] = i['percent']
 dit['年初至今/%'] = i['current_year_percent']
 dit['成交量'] = i['volume']
 dit['成交额'] = i['amount']
 dit['换手率/%'] = i['turnover_rate']
 dit['市盈率TTM'] = i['pe_ttm']
 dit['股息率/%'] = i['dividend_yield']
 dit['市值'] = i['market_capital']
 print(dit)

保存数据

import csv
f = open('股票数据.csv', mode='a', encoding='utf-8-sig', newline='')
csv_writer = csv.DictWriter(f, fieldnames=['股票代码', '股票名字', '当前价', '涨跌额', '涨跌幅/%', '年初至今/%', '成交量', '成交额', '换手率/%', '市盈率TTM', '股息率/%', '市值'])
csv_writer.writeheader()
csv_writer.writerow(dit)
f.close()

完整代码

import pprint

import requests
import time
import csv

f = open('股票数据.csv', mode='a', encoding='utf-8-sig', newline='')
csv_writer = csv.DictWriter(f, fieldnames=['股票代码', '股票名称', '当前价', '涨跌额', '涨跌幅/%', '年初至今/%', '成交量', '成交额', '换手率/%', '市盈率TTM', '股息率/%', '市值'])
csv_writer.writeheader()

for page in range(1, 53):
 time.sleep(1)
 url = 'https://xueqiu.com/service/v5/stock/screener/quote/list'
 date = round(time.time()*1000)
 params = {
  'page': '{}'.format(page),
  'size': '30',
  'order': 'desc',
  'order_by': 'amount',
  'exchange': 'CN',
  'market': 'CN',
  'type': 'sha',
  '_': '{}'.format(date),
 }
 cookies = {
  'Cookie': 'acw_tc=2760824216007592794858354eb971860e97492387fac450a734dbb6e89afb; xq_a_token=636e3a77b735ce64db9da253b75cbf49b2518316; xqat=636e3a77b735ce64db9da253b75cbf49b2518316; xq_r_token=91c25a6a9038fa2532dd45b2dd9b573a35e28cfd; xq_id_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJ1aWQiOi0xLCJpc3MiOiJ1YyIsImV4cCI6MTYwMjY0MzAyMCwiY3RtIjoxNjAwNzU5MjY3OTEwLCJjaWQiOiJkOWQwbjRBWnVwIn0.bengzIpmr0io9f44NJdHuc_6g9EIjtrSlMgnqwKSWVzI4syI_yIH1F-GJfK4bTelWzDirufjWMW9DfDMyMkI75TpJqiwIq8PRsa1bQ7IuCXLbN71ebsiTOGfA5OsWSPQOdVXQA0goqC4yvXLOk5KgC5FQIzZut0N4uaRDLsq7vhmcb8CBw504tCZnbIJTfGGIFIfw7TkwuUCXGY6Q-0mlOG8U4EUTcOCuxN87Ej_OIKnXN8cTSVh7XW6SFxOgU6p3yUXDgvS04rt-nFewpNNqfbGAKk965N-HJ9Mq8E52BRJ3rt_ndYP8yCaeQ6xSsz5P2mNlKwNFe9EQeltim_mDg; u=501600759279498; device_id=24700f9f1986800ab4fcc880530dd0ed; Hm_lvt_1db88642e346389874251b5a1eded6e3=1600759286; _ga=GA1.2.2049292015.1600759388; _gid=GA1.2.391362708.1600759388; s=du11eogy79; __utma=1.2049292015.1600759388.1600759397.1600759397.1; __utmc=1; __utmz=1.1600759397.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utmt=1; __utmb=1.3.10.1600759397; Hm_lpvt_1db88642e346389874251b5a1eded6e3=1600759448'
 }
 headers = {
  'Host': 'xueqiu.com',
  'Pragma': 'no-cache',
  'Referer': 'https://xueqiu.com/hq',
  'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36'
 }

 response = requests.get(url=url, params=params, headers=headers, cookies=cookies)
 html_data = response.json()
 data_list = html_data['data']['list']
 for i in data_list:
  dit = {}
  dit['股票代码'] = i['symbol']
  dit['股票名称'] = i['name']
  dit['当前价'] = i['current']
  dit['涨跌额'] = i['chg']
  dit['涨跌幅/%'] = i['percent']
  dit['年初至今/%'] = i['current_year_percent']
  dit['成交量'] = i['volume']
  dit['成交额'] = i['amount']
  dit['换手率/%'] = i['turnover_rate']
  dit['市盈率TTM'] = i['pe_ttm']
  dit['股息率/%'] = i['dividend_yield']
  dit['市值'] = i['market_capital']
  csv_writer.writerow(dit)

  print(dit)

f.close()

Python爬取股票信息,并可视化数据的示例

Python爬取股票信息,并可视化数据的示例

数据分析代码

c = (
 Bar()
  .add_xaxis(list(df2['股票名称'].values))
  .add_yaxis("股票成交量情况", list(df2['成交量'].values))
  .set_global_opts(
  title_opts=opts.TitleOpts(title="成交量图表 - Volume chart"),
  datazoom_opts=opts.DataZoomOpts(),
 )
  .render("data.html")
)

Python爬取股票信息,并可视化数据的示例

以上就是Python爬取股票信息,并可视化数据的示例的详细内容,更多关于Python爬取股票信息的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
用Python实现协同过滤的教程
Apr 08 Python
12步入门Python中的decorator装饰器使用方法
Jun 20 Python
python实现多线程抓取知乎用户
Dec 12 Python
Python验证文件是否可读写代码分享
Dec 11 Python
Pandas 数据处理,数据清洗详解
Jul 10 Python
计算机二级python学习教程(3) python语言基本数据类型
May 16 Python
使用pandas读取文件的实现
Jul 31 Python
dpn网络的pytorch实现方式
Jan 14 Python
详解使用python3.7配置开发钉钉群自定义机器人(2020年新版攻略)
Apr 01 Python
用 Python 制作地球仪的方法
Apr 24 Python
用Python开发app后端有优势吗
Jun 29 Python
python调用百度API实现人脸识别
Nov 17 Python
如何利用python发送邮件
Sep 26 #Python
Python 测试框架unittest和pytest的优劣
Sep 26 #Python
浅析python函数式编程
Sep 26 #Python
python用Configobj模块读取配置文件
Sep 26 #Python
Python内存泄漏和内存溢出的解决方案
Sep 26 #Python
python 两种方法修改文件的创建时间、修改时间、访问时间
Sep 26 #Python
如何使用Python调整图像大小
Sep 26 #Python
You might like
PHP 面向对象实现代码
2009/11/11 PHP
关于php mvc开发模式的感想
2011/06/28 PHP
PHP MySQL应用中使用XOR运算加密算法分享
2011/08/28 PHP
PHP 使用pcntl和libevent 实现Timer功能
2013/10/27 PHP
ThinkPHP防止重复提交表单的方法实例分析
2018/05/10 PHP
excel操作之Add Data to a Spreadsheet Cell
2007/06/12 Javascript
js下利用控制器载入对应脚本
2010/07/17 Javascript
深入理解JavaScript系列(8) S.O.L.I.D五大原则之里氏替换原则LSP
2012/01/15 Javascript
JQuery入门—JQuery程序的代码风格详细介绍
2013/01/03 Javascript
js控制淡入淡出示例代码
2013/11/12 Javascript
js实现按Ctrl+Enter发送效果
2014/09/18 Javascript
JavaScript中transform实现数字翻页效果
2017/03/08 Javascript
Bootstrap table学习笔记(2) 前后端分页模糊查询
2017/05/18 Javascript
bootstrap fileinput插件实现预览上传照片功能
2018/01/23 Javascript
vue中简单弹框dialog的实现方法
2018/02/26 Javascript
基于JS实现web端录音与播放功能
2019/04/17 Javascript
Angular8 Http拦截器简单使用教程
2019/08/20 Javascript
linux 下以二进制的方式安装 nodejs
2020/02/12 NodeJs
JS中锚点链接点击平滑滚动并自由调整到顶部位置
2021/02/06 Javascript
[58:42]DOTA2上海特级锦标赛C组败者赛 Newbee VS Archon第一局
2016/02/27 DOTA
举例讲解Python程序与系统shell交互的方式
2015/04/09 Python
Python实现对百度云的文件上传(实例讲解)
2017/10/21 Python
django富文本编辑器的实现示例
2019/04/10 Python
python爬虫 基于requests模块发起ajax的get请求实现解析
2019/08/20 Python
Python paramiko 模块浅谈与SSH主要功能模拟解析
2020/02/29 Python
Python文本文件的合并操作方法代码实例
2020/03/31 Python
Pycharm 使用 Pipenv 新建的虚拟环境(图文详解)
2020/04/16 Python
django queryset 去重 .distinct()说明
2020/05/19 Python
Pycharm生成可执行文件.exe的实现方法
2020/06/02 Python
Python 如何定义匿名或内联函数
2020/08/01 Python
CSS3条纹背景制作的实战攻略
2016/05/31 HTML / CSS
The Hut德国站点:时装、家居用品、美容等
2016/09/23 全球购物
小学生作文评语
2014/04/18 职场文书
语文教育专业求职信
2014/06/28 职场文书
2014年法务工作总结
2014/12/11 职场文书
倡议书怎么写?
2019/04/11 职场文书