技术标签: python 数据分析 机器学习 人工智能 编程语言
回复“书籍”即可获赠Python从入门到进阶共10本电子书
今
日
鸡
汤
独怜幽草涧边生,上有黄鹂深树鸣。
大家好,我是志斌~
在之前志斌写过一篇东方财富网的股票数据爬取文章,详看,受到很多读者的喜欢,有的读者问志斌能不能在写一个获取股票分时数据的文章,今天志斌给安排上!
01
数据采集
首先进入某只股票的详情页,然后在右侧找到分时成交并点击查看更多分时成交,然后进入分时数据的详情页面。
然后我们按F12打开开发者模式,对分时数据的详情页面进行观察后,发现数据存储在一个get开头的页面中,并以JQuery的方式存储。
我们已经发现单页数据存储的方式了,现在我们来看一下各页URL之间的联系,如图:
从图中,我们可以发现,pageindex的值就是页数-1,所以,我们在爬取的时候只需要让pageindex的值进行循环即可。
经过上面的分析,我们已经找全了爬虫的几个关键参数,现在可以开始构建程序,开始爬取了,核心代码如下:
import requests
import csv
with open('688103.csv','a',newline='') as f:
writer = csv.writer(f)
writer.writerow(['时间','成交价','手数'])
for page in range(27):
params = (
('pagesize', '144'),
('ut', '7eea3edcaed734bea9cbfc24409ed989'),
('dpt', 'wzfscj'),
('cb', 'jQuery1124029337350072397084_1631343037828'),
('pageindex', str(page)),
('id', '6009051'),
('sort', '1'),
('ft', '1'),
('code', '688103'),
('market', '1'),
('_', '1631343037827'),
)
response = requests.get('http://push2ex.eastmoney.com/getStockFenShi', headers=headers, params=params, cookies=cookies, verify=False)
for i in eval(response.text[43:-2])['data']['data']:
with open('688103.csv','a',newline='') as f:
writer = csv.writer(f)
if len(str(i['t']))<6:
shi = str(i['t'])[0]
fen = str(i['t'])[1:3]
miao = str(i['t'])[3:]
else:
shi = str(i['t'])[0:2]
fen = str(i['t'])[2:4]
miao = str(i['t'])[4:]
if i['bs'] == 4:
a = '--'
elif i['bs'] == 2:
a = '买入'
elif i['bs'] == 1:
a = '卖出'
02
批量爬取
上面的程序是对单个股票数据的分时数据进行爬取的,我们如果想对其他股票进行爬取,还要在一个一个进行构造那也太麻烦了。
所以我们需要对程序进行完善,让它能够爬取全部的股票分时数据。
我们通过对不同股票的页面数据进行观察发现每个股票的code是它们自己的股票代码,并且id是code+‘2’.
好了,经过上面的分析,我们也只知道不同股票之间的联系了,那我们接下来就可以开始完善程序了,核心代码如下:
gupiao_code = ['301073']
for code in gupiao_code:
with open(f'{code}.csv', 'a', newline='') as f:
writer = csv.writer(f)
writer.writerow(['时间', '成交价', '手数', '买入/卖出'])
try:
for page in range(40):
params = (
('pagesize', '144'),
('ut', '7eea3edcaed734bea9cbfc24409ed989'),
('dpt', 'wzfscj'),
('cb', 'jQuery112408490604705504154_1633509557420'),
('pageindex', str(page)),
('id', '3010732'),
('sort', '1'),
('ft', '1'),
('code', code),
('market', '0'),
('_', '1633509557478'),
)
03
任意时间
有的读者又说了,能不能把之前的分时数据也给爬取下来呢,那必须能啊!
志斌对所有的参数进行观察后发现,在cookie里面有关于日期的参数,如下图:
这就是说当我们改动cookie里面的时间参数就可以爬取任意时间的股票分时数据了,核心代码如下:
riqi = input('输入格式如下:xxxx-')
cookies = {
'st_sp': f'{riqi}%2014%3A57%3A10',
}
因为涉及到cookie,所以就只展示关键部分的数据写法,其他的大家详见代码。
04
小结
1. 本文详细的介绍了如何从东方财富网上批量获取股票分时数据,请读者仔细阅读,并加以操作。
2. 东方财富网没有反爬,但是本着友好的原则,用户在爬取时最好使用间隔爬取。
3. 本文仅供参考学习,不做商用。
小伙伴们,快快用实践一下吧!如果在学习过程中,有遇到任何问题,欢迎加我好友,我拉你进Python学习交流群共同探讨学习。
------------------- End -------------------
往期精彩文章推荐:
欢迎大家点赞,留言,转发,转载,感谢大家的相伴与支持
想加入Python学习群请在后台回复【入群】
万水千山总是情,点个【在看】行不行
/今日留言主题/
随便说一两句吧~
Cache的功能:提高CPU数据输入输出的速率,突破冯诺依曼瓶颈,即CPU与存储系统间数据传送带宽限制。在计算机的存储系统体系中,Cache是访问速度最快的层次。使用Cache改善系统性能的依据是程序的局部性原理。例如:如果以h代表Cache的访问命中率,t1表示Cache的周期时间,t2表示主存器周期时间,以读操作为例,使用“Cache+主存储器”的系统平均周期为t3,则:t3 ...
不知道大家在工作中,有没有遇到特别冷酷无情的老板,每天都想尽各种办法来刁难你。比如说,甩给你一些数据,让你用Excel制作出一个仪表盘来。小编有一个朋友,他就曾被这样刁难过。不过呢,最后在小编的帮助下,他完美解决了这个问题,还获得老板的赏识呢。老板让你用Excel制作仪表盘?你这样做,几分钟就能搞定了所以啊,今天小编就打算给大家分享一下用Excel制作仪表盘的方法,有需要的朋友,可以学起来,暂时不需要的朋友,也可以留作备用哦~下面我们先来看一下最终的效果图吧:老板让你用Excel制作仪表盘?你这样做
ciscn_2019_final_2查看保护在delete这里的话有两个uaf。还开了沙盒,说实话一开始真没什么思路,看了一下ha1vk的wp才知道漏了一init里面的一个非常重要的东西这里读flag。flag的文件描述符被设置成了666泄露数据的话也不是很多。几个字节攻击思路:因为是2.27下,double free泄露出堆的低位地址,利用double free将size改为0x91,这个时候可以tcache attack泄露出main_arena的低位。libc的这些低位都有了之后接
我们平时使用的基本都是admin管理员账户,但其实在系统中还有一个Guest账号,很多小伙伴都还不清楚如何开启,那么要遇到这种情况应该怎么办呢?下面就和小编一起来看看有什么解决方法吧。更多windows11系统教程,可以参考小白一键重装网。Win11开启Guest账号的方法方法一1、首先确保你没有安装其他模拟器软件。2、接着展开左侧“本地用户和组”,进入“用户”选项。3、再双击右边的“guest”设置。4、最后取消“账户已禁用”,再点击“确定”就可以了。方法二
下面介绍在Windows系统下如何搭建VisualSVN Server的:1.下载VisualSVN Server2.双击Visual-SVN-Server-*.*.*.exe安装文件。3.点击"Next"进入下一个界面如下图所示:Location为VisualSVN Server的安装目录,点击后面的Browse按钮可以更换安装目录,安装的内容包括Subversion和Apache的程序。Rep...
堆的基本概念:严格来讲,堆有不同的种类,但是我们在算法学习中,主要用的还是二叉堆,而二叉堆有最大堆和最小堆之分。最大(最小)堆是一棵每一个节点的键值都不小于(大于)其孩子(如果存在)的键值的树。大顶堆是一棵完全二叉树,同时也是一棵最大树。小顶堆是一棵完全完全二叉树,同时也是一棵最小树。需要注意的问题是:堆中的任一子树也还是堆,即大堆的子树也都是大堆,小堆同样。堆的基本特性:(1).堆...
1. 概念理解 在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式:同步: 所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。也就是必须一件一件事做,等前一件做完了才能做下一件事。 例如普通B/S模式(同步):提交请求->等待服务器处理->处理
作者:李瑞杰目前就职于阿里巴巴,资深 JVM 研究人员在 Java 程序中,我们拥有多种新建对象的方式。除了最为常见的 new 语句之外,我们还可以通过反射机制、Object.clone 方法、反序列化以及 Unsafe.allocateInstance 方法来新建对象。其中,Object.clone 方法和反序列化通过直接复制已有的数据,来初始化新建对象的实例字段。Unsafe.allocate...
题目描述:大数学家高斯有个好习惯:无论如何都要记日记。他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210。后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢?高斯出生于:1777年4月30日。在高斯发现的一个重要定理的日记上标注着:5343,因此可算出那天是:1791年...
unsigned long __get_free_pages(gfp_t gfp_mask, unsigned int order)功能:以gfp_mask的方式分配2^order个物理页面gfP_mask:分配的方式,指出如何分配在哪分配如GFP_KERNELorder:分配2^order个页面返回值:返回分配的第一个页的逻辑地址头文件: #include &lt;gfp/linux.h...
<br />广搜水题,此题可以采用双向广搜进行优化,即从起点和终点两个位置同时开始进行bfs,如果相遇即可输出步数,这样可以节省一半时间,优化后程序跑了15ms,比起0ms秒过的牛人还是差老大一截。。。。ORZ,无限膜拜
window.onload = function(){var control_bar = document.getElementsByClassName("control_bar")[0];var control_bar_mask = document.getElementById("control_bar_mask");var control_bar_cursor = document...