wget将查询字符串附加到结果文件

use*_*292 22 wget

我正在尝试使用wget检索工作网页,这对于大多数网站使用以下命令都很顺利:

wget -p -k http://www.example.com
Run Code Online (Sandbox Code Playgroud)

在这些情况下,我将最终得到index.html和所需的CSS/JS等.

但是,在某些情况下,url将有一个查询字符串,在这种情况下,我会获得一个附加了查询字符串的index.html.

www.onlinetechvision.com/?p=566
Run Code Online (Sandbox Code Playgroud)

结合上面的wget命令将导致:

index.html?page=566
Run Code Online (Sandbox Code Playgroud)

我尝试过使用--restrict-file-names = windows选项,但这只能让我这么做

index.html@page=566
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释为什么需要这个以及如何最终得到一个常规的index.html文件?

更新:我采取不同的方法.我发现我可以通过解析输出来获取wget保存的第一个文件名.因此,保存到:之后出现的名称是我需要的名称.

然而,这是由这个奇怪的角色包裹 - 而不仅仅是删除硬编码 - 这是从哪里来的?

小智 5

如果您尝试使用参数"--adjust-extension"

wget -p -k --adjust-extension  www.onlinetechvision.com/?p=566 
Run Code Online (Sandbox Code Playgroud)

你靠近了 在www.onlinetechvision.com文件夹中,将有一个带有更正扩展名的文件:index.html@p=566.html或者index.html?p=566.html在*NiX系统上.现在很简单,即使使用脚本,也可以将该文件更改为index.html.

如果您使用的是Microsoft操作系统,请确保您拥有更高版本的wget - 它也可以在这里找到:https://eternallybored.org/misc/wget/


hai*_*eng -2

使用 -O 或 --output-document 选项。请参阅http://www.electrictoolbox.com/wget-save- different-filename/

  • 但它不与 -k 选项结合使用 (2认同)