Próbuję wykonać kopię lustrzaną witryny za pomocą wget, ale nie chcę pobierać wielu plików, więc używam --reject
opcji wget, aby nie zapisywać wszystkich plików. Jednak wget nadal pobierze wszystkie pliki, a następnie usunie plik, jeśli pasuje do mojej opcji odrzucania.
Czy jest jakiś sposób, aby powiedzieć Wget, aby nie podążał za niektórymi linkami, jeśli pasują do jakiejś wieloznacznej powłoki? Jeśli wget nie może tego zrobić, czy istnieje jakieś inne popularne polecenie linux, które może to zrobić?
linux
wget
mirror
mirror-site
Rory
źródło
źródło
Odpowiedzi:
Możesz także wypróbować HTTrack, który ma, IMO, bardziej elastyczną i intuicyjną logikę włączania / wyłączania. Coś takiego...
Reguły zostaną zastosowane w kolejności i zastąpią poprzednie reguły ...
źródło
Wygląda na to, że nie jest to możliwe w wget
źródło
W sekcji --reject „man wget”:
„Pamiętaj, że jeśli dowolny z symboli wieloznacznych *,?, [Lub] pojawi się w elemencie acclist lub rejlist, będzie traktowany jako wzorzec, a nie przyrostek.”
Jeśli to robisz, możesz podać przykłady używanych wzorów i tego, co Twoim zdaniem powinno pasować, a to nie pasuje. Mówisz, że pasują, ale czy jesteś pewien?
Upewnij się także, że umieściłeś tę listę w cudzysłowie, aby powłoka nie rozwijała tych symboli wieloznacznych przed przekazaniem argumentów do wget.
Nawet jeśli twój system nie ma wersji 1.12, przeczytaj sekcję Typy plików w tym podręczniku tutaj . Zgodnie z dziennikiem zmian opiekun dodał pewne zastrzeżenia:
źródło
Możesz ograniczyć poziom rekurencji za pomocą
-l NUMBER
opcji, jeśli to pomaga (nie przestrzegając określonego wzorca wyrażenia regularnego).Poziom „2” pobiera index.html, jego podwitryny / obrazy / etc i linki na podstronie.
źródło
jak korzystasz z wget? spróbuj użyć tego w ten sposób:
to polecenie zignoruje pliki gif, jpg i swf.
źródło
Jednym z obejść byłoby uruchomienie wget przez serwer proxy. Ustaw proxy tak, aby nie zezwalał na określone wzorce. To przede wszystkim zablokowałoby wgetowi ich pobieranie.
wget pobierze i usunie plik pasujący do wzorca -R. może również pasować do wzorów, a nie tylko rozszerzeń lub części nazw plików. Jednak to nie powstrzymuje wget przed pobraniem i późniejszym usunięciem.
httrack ma kilka fajnych funkcji, ale z mojego doświadczenia wynika, że sposób, w jaki zapisuje „plik”, może być nieco dziwaczny, np. jeśli httrack natrafi na index.asp? Type = BASIC & PAGEID = 2234234
może go zapisać, ale musisz powiedzieć mu, aby zachował części zapytania,
np.% h% p /% n% [TYP: @TYPE = ::]% [PAGEID: PAGEID = ::].% t
@ jest symbolem zastępczym znaku zapytania, możesz później zmienić nazwę plików, a może zamiast tego uciec od znaku zapytania? problem polega na tym, że.% t doda „.html” na końcu twojego identyfikatora URI, który pierwotnie nie miał „.html”. A jeśli go zdejmiesz, obrazy, które pobiera httrack, nie będą miały rozszerzenia pliku.
Lepiej skorzystać z wget IMHO
źródło