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

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

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

http://boinc.berkeley.edu/trac/wiki
http://www.boinc-wiki.info

我遇到的问题是,这两个都是 wiki。因此,使用以下命令下载:

wget -r -k -np -nv -R jpg,jpeg,gif,png,tif http://www.boinc-wiki.info/

我确实得到了很多文件因为它还遵循类似...?action=edit ...?action=diff&version=...的链接

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

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

附言:

wget -r -k -np -nv -l 1 -R jpg,jpeg,png,gif,tif,pdf,ppt http://boinc.berkeley.edu/trac/wiki/TitleIndex

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

备注:

我得到了看起来最相关的页面:

wget -r -k -nv  -l 2 -R jpg,jpeg,png,gif,tif,pdf,ppt http://www.boinc-wiki.info

答案1

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

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

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

答案2

wget --reject-regex '(.*)\?(.*)' http://example.com

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

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

wget --reject-regex 'expr1|expr2|…' http://example.com

答案3

wget -R "*?action=*"

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

答案4

我认为窃取公共 wiki 网站的数据是一种不好的做法,因为它会给网站带来额外的负担。

如果 wiki 是公开的,并且网站所有者不介意共享内容,他们通常会提供可下载的后端(数据库或其他)转储。因此,您只需下载数据包,设置相同 wiki 引擎的本地实例,将数据导入其中并拥有本地副本。之后,如果您愿意,您可以在本地进行下载。

相关内容