使用 Python 批量下载 PDF
Batch download PDF using Python
我正在尝试使用 Python 批量下载 PDF。手动下载文件的过程是:
- 打开https://www.ffiec.gov/nicpubweb/nicweb/HCSGreaterThan10B.aspx
- 单击列表中的任意银行。假设我选择第一个,JP Morgan.
- 单击创建报告 第 4 来自顶部的报告(即,
银行机构系统性风险报告 (FR Y-15))
- 单击您的财务报告请求已准备就绪
- 下载打开后的PDF url https://www.ffiec.gov/nicpubweb/NICDataCache/FRY15/FRY15_1039502_20160630.PDF
- 对列表中的每家银行重复此过程
要下载摩根大通的PDF,我的代码如下
import urllib2
url = 'https://www.ffiec.gov/nicpubweb/NICDataCache/FRY15/FRY15_1039502_20160630.PDF'
res = urllib2.urlopen(url)
with open('jpm.pdf', 'wb') as handle:
handle.write(res.read())
该代码在我的机器上有效,但在其他人的机器上无效。我怀疑这与 url 的 NICDataCache 部分有关。我去过这个 url 所以代码知道从哪里获取 PDF;对于没有去过该网站的人,如果他们在上面打卡url,他们会得到
The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.
我可以尝试让 Python 模拟上面的按钮点击,然后下载打开的 PDF,但想知道是否有更简单的方法来做到这一点 - 一种不需要我的方法访问我想从中下载的每一个 url。谢谢。
在银行列表中,注意括号中的整数。
假设:该整数唯一标识该银行。
这是创建缓存资源供您访问的url:
https://www.ffiec.gov/nicpubweb/nicweb/FinancialReport.aspx?parID_RSSD={bank_id}&parDT=20160630&parRptType=FRY15
注意 URL 中的 {bank_id}
。我把它放在那里。如果您从银行列表中替换任何用括号包裹的给定整数,它将生成缓存资源。
那么,如果你访问这个URL:https://www.ffiec.gov/nicpubweb/NICDataCache/FRY15/FRY15_{bank_id}_20160630.PDF
它会回复该银行的 PDF。
本质上,您需要从第一页开始遍历银行列表,为您想要的每个银行生成缓存资源(通过使用第一个 URL 作为模板,注入银行编号) ,然后从第二个 URL 模板中提取 PDF。
我正在尝试使用 Python 批量下载 PDF。手动下载文件的过程是:
- 打开https://www.ffiec.gov/nicpubweb/nicweb/HCSGreaterThan10B.aspx
- 单击列表中的任意银行。假设我选择第一个,JP Morgan.
- 单击创建报告 第 4 来自顶部的报告(即, 银行机构系统性风险报告 (FR Y-15))
- 单击您的财务报告请求已准备就绪
- 下载打开后的PDF url https://www.ffiec.gov/nicpubweb/NICDataCache/FRY15/FRY15_1039502_20160630.PDF
- 对列表中的每家银行重复此过程
要下载摩根大通的PDF,我的代码如下
import urllib2
url = 'https://www.ffiec.gov/nicpubweb/NICDataCache/FRY15/FRY15_1039502_20160630.PDF'
res = urllib2.urlopen(url)
with open('jpm.pdf', 'wb') as handle:
handle.write(res.read())
该代码在我的机器上有效,但在其他人的机器上无效。我怀疑这与 url 的 NICDataCache 部分有关。我去过这个 url 所以代码知道从哪里获取 PDF;对于没有去过该网站的人,如果他们在上面打卡url,他们会得到
The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.
我可以尝试让 Python 模拟上面的按钮点击,然后下载打开的 PDF,但想知道是否有更简单的方法来做到这一点 - 一种不需要我的方法访问我想从中下载的每一个 url。谢谢。
在银行列表中,注意括号中的整数。
假设:该整数唯一标识该银行。
这是创建缓存资源供您访问的url:
https://www.ffiec.gov/nicpubweb/nicweb/FinancialReport.aspx?parID_RSSD={bank_id}&parDT=20160630&parRptType=FRY15
注意 URL 中的 {bank_id}
。我把它放在那里。如果您从银行列表中替换任何用括号包裹的给定整数,它将生成缓存资源。
那么,如果你访问这个URL:https://www.ffiec.gov/nicpubweb/NICDataCache/FRY15/FRY15_{bank_id}_20160630.PDF
它会回复该银行的 PDF。
本质上,您需要从第一页开始遍历银行列表,为您想要的每个银行生成缓存资源(通过使用第一个 URL 作为模板,注入银行编号) ,然后从第二个 URL 模板中提取 PDF。