我正在尝试下载两个站点以包含在一张 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,但我认为这个解决方案也适合您。