如何防止 wget 以不同的顺序加载 Apache 目录列表?

如何防止 wget 以不同的顺序加载 Apache 目录列表?

我正在尝试使用以下命令递归下载目录:

wget -r -l2 --no-parent -A "*.pdf" -nd -N -e robots=off http://…

该脚本每 15 分钟执行一次,因此我想尽可能减少请求。我看到有很多请求?C=M;O=A来自目录顺序修改按​​钮,例如姓名,日期或者尺寸例子)。我怎样才能阻止这些请求的发生?

答案1

正如指出的一个答案对于一个相关问题,wget 的文档说:

另请注意,查询字符串(以问号(“?”开头)的 URL 末尾的字符串)不会作为接受/拒绝规则的文件名的一部分包含在内,即使这些字符串实际上会有助于选择的名称预计 Wget 的未来版本将提供允许匹配查询字符串的选项。

您可能需要使用不同的工具,例如帕武克或者httrack。这两个程序提供比 wget 更强大的名称过滤。

作为替代方案,您可以使用 wget 下载目录并随后对其进行过滤。

find . -name '*\?' -delete
# Here is a less dangerous pattern that matches the string you provided more closely:
find . -name '*\??=?;?=?' -delete

答案2

如果您尝试镜像 *.pdf 文件的目录,我会使用 httrack。像这样的命令对我有用:

 % httrack http://my.server.com/dir/with/pdfs/ +mime:text/html +*.pdf --update

您可以通过以下网址查看有关 httrack 的更多信息:

我应该提到使用 httrack 相对于 wget 的一个主要优点是 httrack 只会下载已更改/更新的文件。

相关内容