10

I'm trying to download two sites for inclusion on a CD:

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

The problem I'm having is that these are both wikis. So when downloading with e.g.:

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

I do get a lot of files because it also follows links like ...?action=edit ...?action=diff&version=...

Does somebody know a way to get around this?

I just want the current pages, without images, and without diffs etc.

P.S.:

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

This worked for berkeley but boinc-wiki.info is still giving me trouble :/

P.P.S:

I got what appears to be the most relevant pages with:

wget -r -k -nv  -l 2 -R jpg,jpeg,png,gif,tif,pdf,ppt http://www.boinc-wiki.info
4
  • No need to cross post between superuser and serverfault serverfault.com/questions/156045/…
    – Bryan
    Jun 29, 2010 at 22:07
  • Where should I have posted it? Jun 29, 2010 at 22:20
  • this is the right place. It's not a server question.
    – David Z
    Jun 30, 2010 at 0:42
  • Still I got the better answers at serverfault ;) Jun 30, 2010 at 0:56

4 Answers 4

5

The new version of wget (v.1.14) solves all these problems.

You have to use the new option --reject-regex=.... to handle query strings.

Note that I couldn't find the new manual that includes these new options, so you have to use the help command wget --help > help.txt

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

(--reject-type posix by default). Works only for recent (>=1.14) versions of wget though, according to other comments.

Beware that it seems you can use --reject-regex only once per wget call. That is, you have to use | in a single regex if you want to select on several regex :

wget --reject-regex 'expr1|expr2|…' http://example.com
2
  • Could be true about the version requirement. I had v1.12 and the option was not valid. After upgrade to v1.15 it was.
    – yunzen
    Apr 4, 2014 at 12:41
  • Regex alternation using the | ("pipe") symbol isn't working for me with GNU Wget 1.16.
    – user11574
    Dec 24, 2015 at 2:38
0
wget -R "*?action=*"

This will exclude anything which contains ?action= in its name.

2
  • 3
    "Note, too, that query strings (strings at the end of a URL beginning with a question mark (‘?’) are not included as part of the filename for accept/reject rules, even though these will actually contribute to the name chosen for the local file. It is expected that a future version of Wget will provide an option to allow matching against query strings." Jun 29, 2010 at 22:39
  • Hmm, I must have missed that. It looks like you can't do this with wget then if it doesn't even know that they are different files. I suggest a different program.
    – Daisetsu
    Jul 1, 2010 at 16:41
-3

I'd say that leeching a public wiki site is bad practice, because it puts additional load on it.

If a wiki is public and the site owners don't mind sharing the content, they usually provide a downloadable backend (database or whatever) dump. So you would just download the data pack, set up a local instance of the same wiki engine, import the data into it and have a local copy. After that, if you wish, you can do the leeching locally.

1

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .