最近手头有点紧,于是用Python来冲一波股票...
创始人
2024-05-06 02:58:49
0

文章目录

  • 前言
  • 准备工作
  • 获取数据部分
      • 爬虫的基本流程
      • 代码展示
  • 数据可视化分析
  • 最后

前言

快过年了,手头有点紧,但是作为一个男人,身上怎么能够没有大把钞票呢?

于是我决定用Python来分析一波股票,赢了会所嫩*,输了下海干活!

好了,上面是我吹牛逼的,不过确实有小伙伴看了爬股票数据进行分析的教程中过,但是我还是不建议各位去碰这玩意,今天咱们就是纯纯的分享技术哈~

准备工作

既然要去赚马内,咱们首先要获取往期的数据来进行分析,通过往期的规律来对当前进行预测,准不准我不知道,反正比人预测的准,不准也不要喷我,咱们是来交流技术的,不是来炒股的。

我们需要使用这些模块,通过pip安装即可。

不会安装模块可以看我往期文章:如何安装python模块, python模块安装失败的原因以及解决办法

后续使用的其它的模块都是Python自带的,不需要安装,直接导入使用即可。

requests:      爬虫数据请求模块
pyecharts:     数据分析 可视化模块
pandas:        数据分析 可视化模块里面的设置模块(图表样式)

获取数据部分

爬虫的基本流程

思路分析

采集什么数据?怎么采集?

首先我们找到数据来源,从network当中去找到数据所在的位置,这一步就不详细讲了。

可以看我往期文章:Python爬虫何如抓包?这三个案例手把手教会你,非常详细!

代码实现

我们想要实现通过爬虫获取到数据,正常情况下有几个步骤:

  1. 发送请求
  2. 获取数据
  3. 解析数据
  4. 保存数据

接下来我们来看代码

代码展示

导入需要使用的模块

import requests     # 数据请求模块
import csv          # 表格模块

1、发送请求

通过response模块来访问需要获取数据的地址

url = 'https://stock.xueqiu.com/v5/stock/screener/quote/list.json?page={page}&size=30&order=desc&orderby=percent&order_by=percent&market=CN&type=sh_sz'
requests.get(url=url)

假设目标网址是你刚认识的妹子家,你能穿的破破烂烂,脏不溜秋的就进去吗?肯定得打扮一番,把自己伪装的人模狗样的才让你进去对不对,不然就被赶出来了。

同理,直接这么进去是不一定能获取到数据,所以需要使用 cookie 来伪装一下,cookie代表着用户身份信息。

当然光cookie是不够的,咱们再加上当前网页的 user-agent

伪装加好之后,咱们就能得到一个相应结果,先打印出来看看。

import requests  # 第三方模块
import csv# 伪装
headers = {# 用户身份信息'cookie': 's=bq119wflib; device_id=90ec0683f24e4d1dd28a383d87fa03c5; xq_a_token=df4b782b118f7f9cabab6989b39a24cb04685f95; xqat=df4b782b118f7f9cabab6989b39a24cb04685f95; xq_r_token=3ae1ada2a33de0f698daa53fb4e1b61edf335952; xq_id_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJ1aWQiOi0xLCJpc3MiOiJ1YyIsImV4cCI6MTY3MjE4Njc1MSwiY3RtIjoxNjcwNTAxMjA5MTEyLCJjaWQiOiJkOWQwbjRBWnVwIn0.iuLASkwB6LkAYhG8X8HE-M7AM0n0QUULimW1C4bmkko-wwnPv8YgdakTC1Ju6TPQLjGhMqHuSXqiWdOqVIjy_OMEj9L_HScDot-7kn63uc2lZbEdGnjyF3sDrqGBCpocuxTTwuSFuQoQ1lL7ZWLYOcvz2pRgCw64I0zLZ9LogQU8rNP-a_1Nc91V8moONFqPWD5Lt3JxqcuyJbmb86OpfJZRycnh1Gjnl0Aj1ltGa4sNGSMXoY2iNM8NB56LLIp9dztEwExiRSWlWZifpl9ERTIIpHFBq6L2lSTRKqXKb0V3McmgwQ1X0_MdNdLAZaLZjSIIcQgBU26T8Z4YBZ39dA; u=511670501221348; Hm_lvt_1db88642e346389874251b5a1eded6e3=1667994737,1670480781,1670501222; Hm_lpvt_1db88642e346389874251b5a1eded6e3=1670501922',# 浏览器的基本信息'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36'
}url = 'https://stock.xueqiu.com/v5/stock/screener/quote/list.json?page={page}&size=30&order=desc&orderby=percent&order_by=percent&market=CN&type=sh_sz'# 1. 发送请求
response = requests.get(url=url, headers=headers)print(response)

运行后出现 求请求成功,出现404就是访问不到资源,一般是被反爬了。

所以这时候我们需要加一个 referer 防盗链参数进去

'referer: https://xueqiu.com/hq'

如果加了还不行,就是自己链接有问题了。

取数据的话 .json 就好了

import requests  # 第三方模块
import csv# 伪装
headers = {# 用户身份信息'cookie': 's=bq119wflib; device_id=90ec0683f24e4d1dd28a383d87fa03c5; xq_a_token=df4b782b118f7f9cabab6989b39a24cb04685f95; xqat=df4b782b118f7f9cabab6989b39a24cb04685f95; xq_r_token=3ae1ada2a33de0f698daa53fb4e1b61edf335952; xq_id_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJ1aWQiOi0xLCJpc3MiOiJ1YyIsImV4cCI6MTY3MjE4Njc1MSwiY3RtIjoxNjcwNTAxMjA5MTEyLCJjaWQiOiJkOWQwbjRBWnVwIn0.iuLASkwB6LkAYhG8X8HE-M7AM0n0QUULimW1C4bmkko-wwnPv8YgdakTC1Ju6TPQLjGhMqHuSXqiWdOqVIjy_OMEj9L_HScDot-7kn63uc2lZbEdGnjyF3sDrqGBCpocuxTTwuSFuQoQ1lL7ZWLYOcvz2pRgCw64I0zLZ9LogQU8rNP-a_1Nc91V8moONFqPWD5Lt3JxqcuyJbmb86OpfJZRycnh1Gjnl0Aj1ltGa4sNGSMXoY2iNM8NB56LLIp9dztEwExiRSWlWZifpl9ERTIIpHFBq6L2lSTRKqXKb0V3McmgwQ1X0_MdNdLAZaLZjSIIcQgBU26T8Z4YBZ39dA; u=511670501221348; Hm_lvt_1db88642e346389874251b5a1eded6e3=1667994737,1670480781,1670501222; Hm_lpvt_1db88642e346389874251b5a1eded6e3=1670501922',# 防盗链'referer: https://xueqiu.com/hq'# 浏览器的基本信息'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36'
}url = 'https://stock.xueqiu.com/v5/stock/screener/quote/list.json?page={page}&size=30&order=desc&orderby=percent&order_by=percent&market=CN&type=sh_sz'# 1. 发送请求
response = requests.get(url=url, headers=headers)print(response.json())

2、获取数据

什么是json数据?

以 {}/[] 所包裹起来的数据 {“”:“”, “”:“”}

除了 .json 还可以通过 .text 和 .content 来拿到数据,但是它们获取到的数据是一样。

.text 获取到的是字符串,文本内容。
.content 取到的是二进制数据,一般是图片/音频/视频内容。

json_data = response.json()

3、解析数据

解析数据就是提取数据,把我们想要的数据提取出来。

没学过字典的小伙伴,可以先学一下字典。

data_list = json_data['data']['list']
# data_list[0]
# data_list[1]
for i in range(0, len(data_list)):symbol = data_list[i]['symbol']name = data_list[i]['name']current = data_list[i]['current']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, current, chg, percent, current_year_percent, volume, amount, turnover_rate, pe_ttm, dividend_yield, market_capital)

4、保存数据

csv_writer.writerow([symbol, name, current, 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   # 可视化模块里面的设置模块(图表样式)

读取数据

df = pd.read_csv('股票.csv')
x = list(df['股票名称'].values)
y = list(df['成交量'].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("成交量图表.html")

最后

今天的分享到这里就结束了,如果如果觉得有帮助的话,记得点赞收藏哈~

相关内容

热门资讯

安卓系统自带的网页,功能与特色... 你有没有发现,每次打开安卓手机,那熟悉的系统界面里总有一个默默无闻的小家伙——安卓系统自带的网页浏览...
美咖云系统安卓版,开启智能生活... 你有没有发现,最近手机上多了一个叫“美咖云系统安卓版”的小家伙?它就像一个魔法师,轻轻一点,就能让你...
安卓系统推荐最好的手机,盘点性... 你有没有想过,拥有一部性能卓越的手机,就像是拥有了移动的宝藏库?在这个信息爆炸的时代,一部好手机不仅...
安卓11系统能精简吗,释放潜能 你有没有发现,随着手机越来越智能,系统也越来越庞大?安卓11系统,这个最新的操作系统,是不是也让你觉...
安卓自动重启系统软件,揭秘原因... 手机突然自动重启,是不是感觉整个人都不好了?别急,今天就来和你聊聊这个让人头疼的安卓自动重启系统软件...
苹果手机x刷安卓系统,探索安卓... 你有没有想过,你的苹果手机X竟然也能刷上安卓系统?是的,你没听错,就是那个一直以来都和我们苹果手机X...
安卓系统智商低吗,智商低下的真... 你有没有想过,为什么安卓系统的智商总被调侃得好像有点低呢?是不是觉得它总是慢吞吞的,有时候还犯点小错...
安卓系统手机联系人,揭秘你的社... 你有没有发现,手机里的联系人列表就像是一个小小的社交圈呢?里面藏着我们的亲朋好友、工作伙伴,甚至还有...
安卓系统免费铃声下载,打造个性... 手机里那首老掉牙的铃声是不是让你觉得有点out了呢?别急,今天就来给你支个招,让你轻松给安卓手机换上...
安卓系统用哪个桌面好,打造个性... 你有没有发现,手机桌面可是我们每天都要面对的“脸面”呢?换一个好看的桌面,心情都能跟着好起来。那么,...
虚拟大师是安卓10系统,功能与... 你知道吗?最近在手机圈里,有个新玩意儿引起了不小的轰动,那就是虚拟大师!而且,更让人惊喜的是,这个虚...
安卓系统与苹果优缺点,系统优缺... 说到手机操作系统,安卓和苹果绝对是两大巨头,它们各有各的特色,就像两道不同的美味佳肴,让人难以抉择。...
安卓win双系统主板,融合与创... 你有没有想过,一台电脑如果既能流畅运行安卓系统,又能轻松驾驭Windows系统,那该有多爽啊?没错,...
安卓系统可精简软件,轻松提升手... 你有没有发现,手机里的安卓系统越来越庞大,软件也越装越多,有时候感觉手机就像个“大肚子”,不仅运行速...
安卓系统基于linux的代码,... 你有没有想过,那个陪伴你每天刷抖音、玩游戏、办公的安卓系统,其实背后有着一套复杂的基于Linux的代...
苹果和安卓的拍照系统,谁更胜一... 你有没有发现,现在手机拍照已经成为我们生活中不可或缺的一部分呢?无论是记录生活的点滴,还是捕捉美丽的...
苹果和安卓系统不同吗,系统差异... 你有没有想过,为什么你的手机里装的是苹果的iOS系统,而朋友的手机却是安卓系统呢?这两种系统,看似都...
安卓系统有多少级,揭秘其多级架... 你有没有想过,那个陪伴我们日常生活的安卓系统,它其实有着丰富的层级结构呢?没错,就是那个让我们的手机...
华为鸿蒙系统与安卓的,技术融合... 你知道吗?最近科技圈可是炸开了锅,华为鸿蒙系统与安卓的较量成为了大家热议的话题。这不,今天我就来给你...
什么安卓手机是苹果系统,搭载苹... 你有没有想过,为什么有些人宁愿花大价钱买苹果手机,而有些人却对安卓手机情有独钟呢?其实,这个问题背后...