有没有办法下载链接在网站上的多个PDF?

时间:2018-03-16 02:16:24

标签: pdf web-scraping automation

我正在尝试从联邦储备档案中下载一堆PDF,但是我必须先点击一个链接,然后才能下载之前查看PDF。有没有办法实现自动化?

示例:https://fraser.stlouisfed.org/title/5170#521653是演讲的链接,然后您必须单击标题,然后查看pdf,然后查看实际的下载按钮。

1 个答案:

答案 0 :(得分:0)

所有远程.pdf文件都遵循路径格式:

https://fraser.stlouisfed.org/files/docs/historical/frbatl/speeches/guynn_xxxxxxxx.pdf

其中每个x是数字的占位符。

所以,是的,使用 Terminal 中的命令行或您可以访问的任何shell程序,可以一次性下载大量这些PDF。

如果您使用的是基于* nix的操作系统(包括MacOS),那很好,因为您的shell可能已经安装了一个名为curl的命令实用程序。 Windows可能也有它,我不确定;我不使用Windows。

如果您正在使用Windows,则必须对下面的代码进行一些调整,因为文件夹结构和文件命名约定不同,因此前几个命令将无效。

但是,如果您愿意继续,请打开终端窗口,然后输入此命令在 Downloads 文件夹中创建一个新目录,将下载.pdf个文件:

mkdir ~/Downloads/FRASER_PDFs; cd ~/Downloads/FRASER_PDFs

点击输入。接下来,如果没有错误,请复制粘贴此长命令,然后按 Enter

curl --url \
"https://fraser.stlouisfed.org/files/docs/historical/frbatl/speeches/guynn_{"$(curl \
https://fraser.stlouisfed.org/title/5170#521653 --silent \
| egrep -io -e '/files/docs/historical/frbatl/speeches/guynn_\d+\.pdf' \
| egrep -o -e '\d+' | tr '\n' ',')"}.pdf" -O --remote-name-all

您可以看到它使用您在问题中提供的URL,该命令从该URL检索所有.pdf链接。如果您需要对其他类似页面执行相同操作,只要它们都使用相同的URL格式,您只需将5170#521653替换为包含另一个.pdf列表的页面引用。

相关问题