一键爬取基金历年季度 数据,轻松搞定!附源码

大家好,我是小一

对应的,点击 基金公告菜单的定期 告选项 可以看到所有的季度 告

可以看到此时的 url 链接变成了下面这种:

http://fundf10.eastmoney.com/jjgg_005968_3.html

这个 url 我们通过 前缀+基金代码+后缀 可以直接构造

对于任意的基金 告,只需要改动基金代码就能直接定位到基金 告页。

http://fundf10.eastmoney.com/jjgg_ + 基金代码 + _3.html

另外可以发现,005968 的基金 告是有两页。

调出 F12 窗口,在点击下一页的时候可以发现动态请求的链接

通过多次测试,发现这个参数值会根据时间发生变化,但是又不是简单的时间戳格式

大胆盲猜一下,这个参数应该是平台对应的反爬参数,如果能破解这个参数的生成规则,那么今天的目标就很容易搞定

花了点时间多研究了一下,发现没有很明显的规则,暂时决定放弃。

这个参数确实比较重要,有兴趣的可以研究下平台的生成规则,

ok,通过接口的方案获取数据暂时行不通,那就换种方式:selenium

关于 selenium 的使用在老早的一篇文章中就有说过,我还特意去看了一下,发现当时写的巨详细,墙裂推荐:小白学爬虫-进阶-selenium 获取数据

所以,下面是文章的重点:通过 selenium 爬取数据

老规矩,先说流程:

  1. 进入季度 页面,获取翻页页面进行循环

  2. 循环体中执行以下两个操作

  • 解析当前页的内容,保存页面数据

  • 点击下一页

遍历所有数据,筛选 告中的季度

调用下载函数,下载对应的基金 告,保存 pdf 在本地

具体的,在解析每一页的内容时,可拿到 基金 告的标题、下载链接、发布时间

流程不难,代码操作也比较简单,往下看 

3. 获取 告页码

如图所示,4 个 label 标签分别对应:上一页、1、2、下一页,页码为 2

所以:页码即为 label 的长度-2

具体代码如下:

5. 翻页操作

翻页操作在 selenium 中操作非常方便,定位+点击

对应的需要先确定翻页的按钮,也就是对应的页码 1/2/3/4 等,然后调用 click 函数

具体代码如下:

非常建议大家在每一个翻页中设置合适的休眠时间

上次基金的文章开源之后,可能有人把休眠时间去掉了,短时间内频繁爬取,导致官方做了反爬

同时,编译器终端会是这样的:

以上就是本次爬虫的所有内容

最后的最后,还是建议大家理性爬数据,在每一个翻页中设置合适的休眠时间,善待每一个目标 站

另外,本着互相学习、交流思路的目的,本节所有代码开源

代码开源的目的主要是互相学习、交流思路

比如有更好的方法爬取基金 告数据的,也都可以一起交流讨论

说个小小的拓展,对于基金季度 pdf 文件,可以通过 Python 对收益情况、业绩表现、投资情况等做一个更细致的对比分析

往期文章

2020年,『小一的学习笔记』文章合集

说说我自己对于 基金 股票 的理解

爬取了 14455 个已发行基金,到底能分析点啥出来/strong>

我是小一,坚持向暮光所走的人,终将成为耀眼的存在!

期待你的 三连!我们下节见

文章知识点与官方知识档案匹配,可进一步学习相关知识OpenCV技能树首页概览11269 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年1月18日
下一篇 2021年1月18日

相关推荐