我正在尝试从联邦储备档案中下载一堆PDF,但是我必须先点击一个链接,然后才能下载之前查看PDF。有没有办法实现自动化?
示例:https://fraser.stlouisfed.org/title/5170#521653是演讲的链接,然后您必须单击标题,然后查看pdf,然后查看实际的下载按钮。
答案 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
列表的页面引用。