我想从文件中下载网页列表。如何阻止Wget将查询字符串附加到保存的文件?
wget http://www.example.com/index.html?querystring
我需要将其下载为index.html
,而不是index.html?querystring
答案 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
,但我想指出这种可能性。