如何使用 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 --reject-regex '(.*)\?(.*)' http://example.com

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

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

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

答案2

wget 的文档说:

还要注意,查询字符串(URL 末尾以问号(“?”)开头的字符串)不包含在接受/拒绝规则的文件名中,即使这些字符串实际上会影响为本地文件选择的名称。预计 Wget 的未来版本将提供一个允许匹配查询字符串的选项。

看起来像这个功能已经讨论一段时间了但什么也没做。

我没用过,但是追踪看起来它比 wget 具有更强大的过滤功能集,可能更适合您所寻找的内容(在此处阅读有关过滤器的信息http://www.httrack.com/html/fcguide.html)。

答案3

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

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

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

答案4

看起来你正在尝试避免下载 MediaWiki 的特殊页面。我通过避免下载以下页面解决了这个问题index.php

wget  -R '*index.php*'  -r ... <wiki link>

但是,该 wiki 使用的 URL 与 Wikipedia 中看到的一样 ( http://<wiki>/en/Theme),而不是我在其他地方看到的模式 ( http://<wiki>/index.php?title=Theme)。由于你提供的链接使用 Wikipedia 模式中的 URL,但我认为这个解决方案也适合您。

相关内容