如何使用 wget 下载而不跟随带参数的链接

Tie*_*ter 10 linux unix wget

我正在尝试下载两个站点以包含在 CD 中:

http://boinc.berkeley.edu/trac/wiki
http://www.boinc-wiki.info
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是这些都是维基。所以当下载时,例如:

wget -r -k -np -nv -R jpg,jpeg,gif,png,tif http://www.boinc-wiki.info/
Run Code Online (Sandbox Code Playgroud)

我确实得到了很多文件,因为它也遵循诸如 ...?action=edit ...?action=diff&version=... 之类的链接

有人知道解决这个问题的方法吗?

我只想要当前页面,没有图像,没有差异等。

PS:

wget -r -k -np -nv -l 1 -R jpg,jpeg,png,gif,tif,pdf,ppt http://boinc.berkeley.edu/trac/wiki/TitleIndex
Run Code Online (Sandbox Code Playgroud)

这适用于伯克利,但 boinc-wiki.info 仍然给我带来麻烦:/

缴费灵:

我得到了似乎最相关的页面:

wget -r -k -nv  -l 2 -R jpg,jpeg,png,gif,tif,pdf,ppt http://www.boinc-wiki.info
Run Code Online (Sandbox Code Playgroud)

use*_*076 5

新版本的wget (v.1.14)解决了所有这些问题。

您必须使用新选项--reject-regex=....来处理查询字符串。

请注意,我找不到包含这些新选项的新手册,因此您必须使用 help 命令 wget --help > help.txt


Ski*_*rou 5

wget --reject-regex '(.*)\\?(.*)' http://example.com\n
Run Code Online (Sandbox Code Playgroud)\n\n

--reject-type posix默认情况下)。wget根据其他评论,仅适用于最近(> = 1.14)版本。

\n\n

请注意,每次通话似乎只能使用--reject-regex一次wget。也就是说,|如果您想选择多个正则表达式,则必须在单个正则表达式中使用:

\n\n
wget --reject-regex 'expr1|expr2|\xe2\x80\xa6' http://example.com\n
Run Code Online (Sandbox Code Playgroud)\n


Dai*_*tsu 0

wget -R "*?action=*"
Run Code Online (Sandbox Code Playgroud)

这将排除其名称中包含的任何内容?action=

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