Python逐年一次下载多家公司年报

发布于: 修改于: 雪球转发:0回复:0喜欢:2

最近在做敏感性分析,有些内部的因素可以从公司年报读出,而有的关键因素(比如烯烃,煤炭价格等)需要看多几家同类公司的年报得出,只用这样才能准确抓住趋势,所以有产生了一个需求:同时下载相关公司的同年年报。

知乎上看到个帖子分享给球友们,它能实现如下功能:给定一个多个公司的股票列表,运行一次能把特定年份的股票列表中的所有公司年报一键下载。使用的是jupyter.

原帖如下:Python读年报1-下载上市公司年报 - 知乎 (zhihu.com)

安装Python jupyter帖子如下:正确打开方式——ANACONDA和jupyter安装 - 知乎 (zhihu.com)

——————————————————

它的核心实现方式是从新浪财经中读取年报信息,具体步骤有:

1.      以宝丰能源的年报为例,链接在

网页链接

观察它的网址如下: 此处600898就是股票代码,更改它就能到不同的股票页面,我们用each1变量表示,程序中从我们定义的列表读出

2.      宝丰能源年报列表中搜寻所有的html, 把其放在target_list里。越近的年份报告就会在前面,所以我们用each2就可以用来代表年份了,比如最近的2022年份,each2=target_list[0],就能进入2022年的宝丰能源年报界面:

网页链接

2022年宝丰年报网址如下,此处8874093=each2

3.      在步骤2的界面搜寻带有.PDF的网址,进入网址下载和重新命名

网页链接

———————————————

我自己做了修改:

1.      更换了文件夹:我是D盘下建立report文件夹,在文件夹里放了stock.txt列表,在列表中放了自己想要分析的股票。(具体修改代码:file_folder= "D://report/";file_name="stock.txt")

2.      修改Decode方式 (具体修改的代码行: thtml tpage.read().decode('gbk','ignore'),因为用原帖子的decode会容易报错。

———————————————————-

运行步骤如下:

1.      写好股票代码放在stock.txt里,txt文件放在report里面。

txt格式:

2.      需要2022年的,不用改each2;需要2021年的,修改each2=target_list[1];需要2020年的each2=target_list[2],依此类推

3.      在jupyter里面一键运行, OK。如果球友有兴趣,可以随时沟通交流。

得到的结果如下: