Wget:没有查询字符串的文件名

4
我想从一个文件中下载网页列表。如何停止Wget将查询字符串附加到保存的文件上?
wget http://www.example.com/index.html?querystring

我需要将它下载为index.html,而不是index.html?querystring
2个回答

1

有一个-O选项:

wget -O file.html http://www.example.com/index.html?querystring

所以您可以稍微修改脚本,将正确的文件名作为-O参数传递。

0

我最终决定使用-O,并将其包装在一个bash函数中以使其更容易使用。我将其放在了我的~/.bashrc文件中:

wget-rmq ()
{
  [ -z "$1" ] && echo 'error: wget-rmq requires a URL to retrieve as the first arg'
  local output_filename="$(echo $1 | sed 's/?.*//g' | sed 's|https.*/||g')"
  wget -O "${output_filename}" "${1}"
}

然后当我想要下载一个文件时:

wget-rmq http://www.example.com/index.html?querystring

替换正则表达式非常简单。如果在查询字符串开始之前的URL中出现任何“?”字符,则会导致错误。但实际上这种情况并不会发生,因为URL编码要求将“?”作为“%3F”出现在URL中,但我想指出这种可能性。

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