科研小工具 | 如何批量下载普惠金融年度pdf报告
Part1数据介绍
前两天,企研·社科大数据平台(https://r.qiyandata.com)上线了银行业普惠专题数据库,其中银行业_普惠机构信息数据子库的年度报告(文本)模块,包含了大量的文本信息,数据下载下来之后,其中的pdf文件需要一个一个复制链接到浏览器进行下载。具体呈现形式如下:
经常查找资源的小伙伴一定知道,很多机构经常将 PDF,Word 等格式的文件存放于服务器,并引导用户点击指定链接跳转到另外的可以预览数据的网页。如下图所示,我们点击国家知识产权局官网主页中【政务】一栏,将鼠标放置在 “国家知识产权局关于核准……”,随后这些文字变为蓝色,点击后跳转到另一个网页,实际上我们点击的正是到达该 PDF 文件的链接;如下图所示,我们将这个链接复制到新建的网页,依然可以访问这份文件,在此页面中我们可以预览、下载或者打印文件。
如下图所示,社科大数据平台中所提供的年报数据,正是预览/下载数据的链接。我们可以从平台中下载含有下载链接的 csv 文件,下文称之为资源文件。
Part2少量数据手动下载
在社科大数据平台下载资源文件后,打开文件并复制其中一个下载链接,粘贴到浏览器地址栏后点击键盘【Enter】即可进入预览/下载页面(首次使用链接,浏览器可能会弹出提示,点击忽略即可)。
Part3如何批量下载数据
手动下载虽方便,但也伴随着问题。当需要下载的数据很多,也就是说有很多个下载链接,我们总不能一个一个手动下载吧?当然不能,也没必要。我们可以使用 Python 自动化下载数据,电脑连接网络即可。
1使用企研自研下载器 —— 一键下载,省时省力
为了方便大家下载数据,我们开发了一个自动下载年报文件的程序给用户使用,该程序可以在电脑中运行,需要配合指定的资源文件(在社科大数据平台【TFID】-【年度报告(文本)】下载的数据表,csv 格式)一起使用。下载器如下图所示:
此工具使用非常简单,鼠标双击下载器 file_downloader.exe ,稍等片刻后会弹出如下图所示交互界面。
我们点击浏览
按钮,会弹出 Windows 资源管理器,找到刚才下载的资源文件(笔者截取了其中两行数据用作展示)点击打开
,随后再次点击 START
按钮即可在程序下方看到下载进度。下载器会将数据下载到与 pdf_downloader.exe
所在文件夹下的 download
文件夹中,如果没有这个文件夹,则会新建它并下载数据到其中。下载器使用步骤如下图所示:
关注我们,公众号对话框内发送关键词“20221014“,即可获取企研自制下载神器!
注意:由于下载器仅适配了社科大数据平台下载的资源文件,故而只能搭配此文件使用;同时,还有以下几个需要注意的地方:
资源文件可以是 .csv
/.xlsx
格式的数据表;资源文件中“报告名称”和“下载链接”两字段的名称不能修改;“下载链接”字段中的内容不能修改,否则会下载失败; 可以截取资源文件中的部分数据行,截取哪些行,下载器就会下载对应数据行的文件,正如笔者前面所示范的; 使用过程中关闭下载器,下载也会中断。
2Python 批量下载数据 —— 随心所欲,自由下载
除了使用我们提供的下载器下载文件,我们还可以选择编写 Python 代码来下载数据,需要借助 Python 中数据处理库 pandas 以及请求库 requests。相比较于使用下载器,编写代码虽不够方便,存在一定技术门槛,但是使用起来更加自由,排查错误比较方便,实现并不困难,更适合有一点 Python 基础的用户。
requests
库是 Python 中通用的网络请求第三方库,数据采集的好帮手。前面我们提供的下载器正是以 requests 为核心编写的下载程序。下面我们编写代码下载文件:
首先,安装需要用到的库(若已安装,可以跳过此步),安装库的命令如下:
pip install pandas
pip install requests
我们仍需要搭配从社科大数据平台下载的资源文件使用,下面是下载数据的代码:
import os # 标准库,无需安装,用于创建文件夹
import requests # 用于请求/下载数据
import pandas as pd # 用于读取资源文件,也可以根据需求处理
## 第一步:创建下载目录
if not os.path.exists('./My_download'):
os.mkdir('./My_download')
## 第二步:定义下载文件的方法
def download_file(URL, file_name):
'''
输入:下载链接、文件名(含后缀)
得到:将数据下载到指定文件夹, 命名为传入的文件名
'''
try:
r = requests.get(url=URL, stream=True) # 向服务器请求数据
if r.status_code == 200:
# 如果请求状态正常,则将数据写入到我们创建的文件夹
with open(f'./My_download/{file_name}', 'wb') as ff:
ff.write(r.content)
del r
except Exception as e:
# 如果下载失败则报告错误
print(e)
## 第三步:读取资源文件(从社科大数据平台下载的数据)
## nrows=5 表示只读取 csv 前五行(这里用作示范);此外,文件路径请根据实际填写
data = pd.read_csv(r'D:\文件下载1\信息披露报告_1663724697937.csv', nrows=5)
''' 此处可以使用 pandas 处理 data, 比如根据表中其他字段筛选文件等,后续就可以下载我们指定的文件了 '''
## 第四步,循环资源文件中的“报告名称”、“下载链接”两个字段,根据链接逐个下载文件
for name, link in zip(data['报告名称'], data['下载链接']):
# 调用前面定义的下载方法
download_file(link, name)
运行代码后,会在代码文件夹中生成我们定义的文件夹,并将数据下载到其中:
以上就是下载普惠金融年报文件的两种方法了,如果您读完后仍存有疑问,请留言或者联系客服,我们会积极解决。
关注我们,公众号对话框内发送关键词“20221014“,即可获取企研自制下载神器!
加入企研·社科大数据平台数据分享群,获取更多数据资源及新鲜资讯
星标⭐我们不迷路!
想要文章及时到,文末“在看”少不了!
往期推荐
文 | 两米哥