我正在学习使用各种 wget 命令(man wget)。但我在学习如何从某些网站下载特定文件(在整个网站上下载它们)时遇到困难。在某些网站上我可以访问其他网站则不能。
例如,为什么我不能对此网站上的文件执行相同的操作?
https://www.ictsd.org/sites/default/files/review/bridgesweekly22-35a_0.pdf
wget -r -nd -A pdf --accept-regex "review/.*\.pdf" 'https://www.ictsd.org/sites/default/files/'
我实际上正在尝试从“files”文件夹及其子文件夹下载所有 pdf 文件。
但即使只是将下载限制到“文件/评论”文件夹。我不能。我还尝试从该网站下载所有 pdf 文件,但无法下载(在其他网站上是可能的)。有什么建议吗?除了查询“man wget”之外,您还可以在哪里了解更多信息?
答案1
为了wget
能够获取一大堆文件,它需要能够在您指定的目录下找到它们。换句话说,当您https://www.ictsd.org/sites/default/files/review/
在网络浏览器中导航时,您应该能够在那里看到 pdf 的链接。如果该链接可以在您的浏览器中看到,那么它也可以通过 看到wget
。
当我在 Firefox 中导航时https://www.ictsd.org/sites/default/files/review/
,出现超时并出现错误消息:
The page isn’t redirecting properly
由于导航到该目录不提供可用文件的索引,因此无法wget
看到您期望它看到的任何内容。
然而,当我在地址中输入特定 pdf 的完整路径时,Firefox 确实找到了它,这与wget
的行为一致。
人们可以推测网站所有者故意这样做是为了防止一次自动检索所有文件。另一方面,如果您认为这只是 Web 服务的错误,并且他们说您要查找的文件应该从包含的目录中可见,您可以与他们联系并让他们知道问题。
或者,如果有其他索引链接到所有 pdf,您可以可能用那个。
如果您事先知道所需的特定 pdf 的名称,您可以将所有链接放入一个文件中并wget
从中读取,如下所示:
wget -i links.txt