通过wget只下载网站上的PDF文件

7
我正在尝试从http://www.fayette-pva.com/下载所有的PDF文件。我认为问题在于当悬停在下载PDF链接上时,Chrome在左下角显示URL而没有.pdf文件扩展名。我看到并使用了另一个类似的论坛答案,但是当我用光标悬停在PDF链接上时,URL中使用了.pdf扩展名。我尝试了与下面链接中相同的代码,但它无法捕获PDF文件。以下是我一直在测试的代码:
wget --no-directories -e robots=off -A.pdf -r -l1 \
    http://www.fayette-pva.com/sales-reports/salesreport03-feb-09feb2015/

我正在使用这个代码片段,它只适用于我知道有一个PDF文档的单个页面。

完整的代码应该如下所示

wget --no-directories -e robots=off -A.pdf -r http://www.fayette-pva.com/

相关回答:WGET无法下载网站中的pdf文件

我不确定下载整个网站是否可行,而且这可能需要很长时间。我该如何解决这个问题并仅下载PDF文件?

1个回答

11

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

解决方案是使用--content-disposition选项,它告诉wget尊重HTTP响应中携带实际文件名的Content-Disposition字段:

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

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

那么你需要这样做:

wget --no-directories --content-disposition -e robots=off -A.pdf -r \
    http://www.fayette-pva.com/

非常被低估的答案 - 谢谢! - prash

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接