我正在尝试使用Python批量下载PDF。手动下载文件的过程是:
要下载JP Morgan的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())
代码可以在我的机器上运行,但不适用于其他人的代码。我怀疑这与网址的 NICDataCache 部分有关。我去过这个网址,所以代码知道在哪里抓PDF;对于没有去过网站的人,如果他们打入上述网址,他们就会
您要查找的资源已被删除,名称已更改或暂时不可用。
我可以尝试让Python模拟上面的按钮点击然后下载打开的PDF但是想知道是否有更简单的方法来执行此操作 - 这种方式不需要我访问每个网址我想下载。感谢。
答案 0 :(得分:1)
在银行列表中,请注意括号中的整数。
这是为您创建缓存资源的URL:
https://www.ffiec.gov/nicpubweb/nicweb/FinancialReport.aspx?parID_RSSD={bank_id}&parDT=20160630&parRptType=FRY15
请注意网址中的{bank_id}
。我把它放在那里。如果用银行列表中的任何包含在parens中的给定整数替换它,它将生成缓存资源。
然后,如果您访问此网址:https://www.ffiec.gov/nicpubweb/NICDataCache/FRY15/FRY15_{bank_id}_20160630.PDF
它将回复该银行的PDF。
基本上,您需要从第一页浏览银行列表,为您想要的每个银行生成缓存资源(通过使用第一个URL作为模板,注入银行编号),然后从中提取PDF第二个URL模板。