python爬虫股票数据分析判断股票好坏_Python爬取股票信息,并可视化数据的示例...

本文主要是介绍python爬虫股票数据分析判断股票好坏_Python爬取股票信息,并可视化数据的示例...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

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

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

先看下效果图

2020926142151698.gif?202082614226

基本环境配置

python 3.6

pycharm

requests

csv

time

目标地址

2020926142311314.jpg?2020826142331

爬虫代码

请求网页

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()

2020926143428633.jpg?2020826143440

2020926143459691.jpg?202082614357

数据分析代码

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")

)

2020926143549602.jpg?2020826143559

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

这篇关于python爬虫股票数据分析判断股票好坏_Python爬取股票信息,并可视化数据的示例...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/569599

相关文章

可视化实训复习篇章

前言: 今天,我们来学习seaborn库可视化,当然,这个建立在Matplotlib的基础上,话不多说,进入今天的正题吧!当然,这个是《python数据分析与应用》书中,大家有需求的可以参考这本书。 知识点: Matplotlib中有两套接口分别是pyplot和pyylab,即绘图时候主要导入的是Matplotlib库下的两个子模块(两个py文件)matplotlib.pyplot和matp

Java面试八股之怎么通过Java程序判断JVM是32位还是64位

怎么通过Java程序判断JVM是32位还是64位 可以通过Java程序内部检查系统属性来判断当前运行的JVM是32位还是64位。以下是一个简单的方法: public class JvmBitCheck {public static void main(String[] args) {String arch = System.getProperty("os.arch");String dataM

Python 字符串占位

在Python中,可以使用字符串的格式化方法来实现字符串的占位。常见的方法有百分号操作符 % 以及 str.format() 方法 百分号操作符 % name = "张三"age = 20message = "我叫%s,今年%d岁。" % (name, age)print(message) # 我叫张三,今年20岁。 str.format() 方法 name = "张三"age

【服务器运维】MySQL数据存储至数据盘

查看磁盘及分区 [root@MySQL tmp]# fdisk -lDisk /dev/sda: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical)

Windows/macOS/Linux 安装 Redis 和 Redis Desktop Manager 可视化工具

本文所有安装都在macOS High Sierra 10.13.4进行,Windows安装相对容易些,Linux安装与macOS类似,文中会做区分讲解 1. Redis安装 1.下载Redis https://redis.io/download 把下载的源码更名为redis-4.0.9-source,我喜欢跟maven、Tomcat放在一起,就放到/Users/zhan/Documents

通过高德api查询所有店铺地址信息

通过高德api查询所有店铺地址电话信息 需求:通过高德api查询所有店铺地址信息需求分析具体实现1、申请高德appkey2、下载types city 字典值3、具体代码调用 需求:通过高德api查询所有店铺地址信息 需求分析 查询现有高德api发现现有接口关键字搜索API服务地址: https://developer.amap.com/api/webservice/gui

一道经典Python程序样例带你飞速掌握Python的字典和列表

Python中的列表(list)和字典(dict)是两种常用的数据结构,它们在数据组织和存储方面有很大的不同。 列表(List) 列表是Python中的一种有序集合,可以随时添加和删除其中的元素。列表中的元素可以是任何数据类型,包括数字、字符串、其他列表等。列表使用方括号[]表示,元素之间用逗号,分隔。 定义和使用 # 定义一个列表 fruits = ['apple', 'banana

Python应用开发——30天学习Streamlit Python包进行APP的构建(9)

st.area_chart 显示区域图。 这是围绕 st.altair_chart 的语法糖。主要区别在于该命令使用数据自身的列和指数来计算图表的 Altair 规格。因此,在许多 "只需绘制此图 "的情况下,该命令更易于使用,但可定制性较差。 如果 st.area_chart 无法正确猜测数据规格,请尝试使用 st.altair_chart 指定所需的图表。 Function signa

SQL Server中,查询数据库中有多少个表,以及数据库其余类型数据统计查询

sqlserver查询数据库中有多少个表 sql server 数表:select count(1) from sysobjects where xtype='U'数视图:select count(1) from sysobjects where xtype='V'数存储过程select count(1) from sysobjects where xtype='P' SE

python实现最简单循环神经网络(RNNs)

Recurrent Neural Networks(RNNs) 的模型: 上图中红色部分是输入向量。文本、单词、数据都是输入,在网络里都以向量的形式进行表示。 绿色部分是隐藏向量。是加工处理过程。 蓝色部分是输出向量。 python代码表示如下: rnn = RNN()y = rnn.step(x) # x为输入向量,y为输出向量 RNNs神经网络由神经元组成, python