wget 仅从网站下载 PDF

use*_*101 6 pdf wget

我正在尝试从http://www.fayette-pva.com/下载所有 PDF 。

我认为问题在于,当将鼠标悬停在下载 PDF 的链接上时,Chrome 会在左下角显示没有.pdf文件扩展名的 URL 。我看到并使用了另一个与此类似的论坛答案,但是.pdf当将光标悬停在 PDF 链接上时,该扩展名用于 URL。我已经尝试了下面链接中的相同代码,但它没有选择 PDF 文件。

这是我一直在测试的代码:

wget --no-directories -e robots=off -A.pdf -r -l1 \
    http://www.fayette-pva.com/sales-reports/salesreport03-feb-09feb2015/
Run Code Online (Sandbox Code Playgroud)

我在一个页面上使用它,我知道它上面有一个 PDF。

完整的代码应该是这样的

wget --no-directories -e robots=off -A.pdf -r http://www.fayette-pva.com/
Run Code Online (Sandbox Code Playgroud)

相关答案:WGET 问题从网站下载 pdfs

我不确定下载整个网站是否有效,以及它是否不会花很长时间。我如何解决这个问题并只下载 PDF?

zb2*_*226 11

是的,问题正是您所说的:URL 不包含常规或绝对文件名,而是对脚本/servlet/... 的调用,该脚本/servlet/... 分发实际文件。

解决方案是使用该--content-disposition选项,该选项告诉wget您遵守Content-DispositionHTTP 响应中的字段,该字段携带实际的文件名:

HTTP/1.1 200 OK
(...)
Content-Disposition: attachment; filename="SalesIndexThru09Feb2015.pdf"
(...)
Connection: close
Run Code Online (Sandbox Code Playgroud)

wget至少从 version 开始支持此选项1.11.4,该版本已经有 7 年历史了。

所以你会执行以下操作:

wget --no-directories --content-disposition -e robots=off -A.pdf -r \
    http://www.fayette-pva.com/
Run Code Online (Sandbox Code Playgroud)