Jak pobierać za pomocą wget bez podążania za linkami z parametrami

11

Próbuję pobrać dwie witryny w celu umieszczenia na płycie CD:

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

Problemem jest to, że są to wiki. Więc podczas pobierania za pomocą np .:

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

Dostaję dużo plików, ponieważ podążają one również za linkami takimi jak ...? Akcja = edycja ...? Akcja = różnica i wersja = ...

Czy ktoś zna sposób na obejście tego?

Chcę tylko bieżące strony, bez obrazów i bez różnic itp.

PS:

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

To zadziałało w Berkeley, ale boinc-wiki.info wciąż sprawia mi kłopoty: /

PPS:

Mam najbardziej odpowiednie strony z:

wget -r -k -nv  -l 2 -R jpg,jpeg,png,gif,tif,pdf,ppt http://www.boinc-wiki.info
Tie-fighter
źródło
Nie ma potrzeby przesyłania postów między superużytkownikiem a awarią serwera
Bryan
Gdzie powinienem to opublikować?
Tie-fighter
To jest właściwe miejsce. To nie jest pytanie serwera.
David Z
Nadal mam lepsze odpowiedzi na błąd serwera;)
Tie-fighter

Odpowiedzi:

5

Nowa wersja wget (v.1.14) rozwiązuje wszystkie te problemy.

Musisz użyć nowej opcji --reject-regex=....do obsługi ciągów zapytań.

Zauważ, że nie mogłem znaleźć nowego podręcznika, który zawiera te nowe opcje, więc musisz użyć polecenia help wget --help > help.txt

użytkownik3133076
źródło
4
wget --reject-regex '(.*)\?(.*)' http://example.com

( --reject-type posixdomyślnie). Działa tylko dla najnowszych (> = 1,14) wersji wget, zgodnie z innymi komentarzami.

Uważaj, że wydaje się, że możesz użyć --reject-regextylko raz na wgetpołączenie. Oznacza to, że musisz użyć |jednego wyrażenia regularnego, jeśli chcesz wybrać kilka wyrażeń regularnych:

wget --reject-regex 'expr1|expr2|…' http://example.com
Skippy le Grand Gourou
źródło
Może być prawdą o wymaganiu wersji. Miałem v1.12 i opcja była nieprawidłowa. Po aktualizacji do wersji 1.15 było.
Junzen
Alternatywne wyrażenia regularne za pomocą |symbolu („potoku”) nie działają dla mnie w GNU Wget 1.16.
sampablokuper
0
wget -R "*?action=*"

Wyklucza to wszystko, co zawiera ?action=jego nazwa.

Daisetsu
źródło
3
„Zauważ też, że ciągi zapytania (ciągi na końcu adresu URL rozpoczynające się znakiem zapytania („? ”)) Nie są uwzględniane jako część nazwy pliku dla reguł akceptowania / odrzucania, mimo że faktycznie przyczyniają się do wybranej nazwy dla pliku lokalnego. Oczekuje się, że przyszła wersja Wget zapewni opcję umożliwiającą dopasowanie do ciągów zapytań. ”
Tie-fighter
Hmm, musiałem tego przegapić. Wygląda na to, że nie możesz tego zrobić za pomocą wget, jeśli nawet nie wie, że są to różne pliki. Proponuję inny program.
Daisetsu
-3

Powiedziałbym, że wypijanie publicznej witryny wiki to zła praktyka, ponieważ nakłada na nią dodatkowe obciążenie.

Jeśli wiki jest publiczna, a właściciele witryn nie mają nic przeciwko udostępnianiu treści, zwykle zapewniają zrzut do pobrania (bazy danych lub cokolwiek innego). Wystarczy pobrać pakiet danych, skonfigurować lokalną instancję tego samego silnika wiki, zaimportować do niej dane i mieć lokalną kopię. Następnie, jeśli chcesz, możesz zrobić pijawkę lokalnie.

vtest
źródło
jest -w sekund. np. -w 5. gnu.org/software/wget/manual/html_node/…
barlop