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

时间:2015-02-12 10:32:52

标签: wget

我想从文件中下载网页列表。如何阻止Wget将查询字符串附加到保存的文件?

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

我需要将其下载为index.html,而不是index.html?querystring

2 个答案:

答案 0 :(得分:1)

有-O选项:

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

所以你可以改变你的脚本以将-O参数传递给正确的文件名。

答案 1 :(得分: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 编码要求 ? 在 URL 中作为 %3F,但我想指出这种可能性。