wget ma taką opcję, -np
która uniemożliwia pobieranie plików z dowolnego katalogu nadrzędnego. Potrzebuję czegoś podobnego, ale nieco bardziej elastycznego. Rozważać:
www.foo.com/bar1/bar2/bar3/index.html
Chciałbym uzyskać wszystko, ale nie „wyżej” (w hierarchii drzew) niż bar2
(!). Dlatego bar2
też należy je pobrać, ale nie należy bar1
.
Czy istnieje sposób na uczynienie wget bardziej selektywnym?
Tło: Próbuję wykonać kopię lustrzaną witryny o podobnej logicznej strukturze - punkt początkowy, potem w górę, a następnie w dół. Jeśli istnieje inne narzędzie wget
, lepiej dostosowane do takiego układu, daj mi również znać.
Aktualizacja
Lub zamiast określania możliwej głębokości, może coś w stylu „bez rodziców, chyba że pasują do tego lub tego adresu URL”.
Aktualizacja 2
Na serwerze jest jakaś struktura, prawda? Możesz to wyobrazić jako drzewo. Zwykle z „--no-parent” zaczynasz od punktu A i schodzisz tylko w dół.
Moim życzeniem jest zdolność do wznoszenia się - wyrażona przez powiedzenie, że dozwolone jest wchodzenie do węzłów X, lub (co jest w 100% równoważne), że wolno jechać do węzła B (gdzie odległość BA = X).
We wszystkich przypadkach zasady zejścia na dół pozostają określone przez użytkowników (na przykład - zejście tylko o poziomy Y).
Jak go przechowywać? W rzeczywistości tak naprawdę nie jest to pytanie - wget
domyślnie odtwarza strukturę serwera, nie ma się czego bać lub nie trzeba niczego naprawiać. Tak więc, w dwóch słowach - jak zwykle.
Aktualizacja 3
Struktura katalogów poniżej - załóżmy, że w każdym katalogu jest tylko jeden plik, w R - R.html i tak dalej. Jest to oczywiście uproszczone, ponieważ możesz mieć więcej niż jedną stronę.
R
/ \
B G
/ \
C F
/ \
A D
/
E
Punktem początkowym jest A (A.html), X = 2 (więc B jest węzłem najwyższego poziomu, który chciałbym pobrać) W tym konkretnym przykładzie oznacza to pobranie wszystkich stron oprócz R.html i G.html. A.html nazywany jest „punktem wyjścia”, bo trzeba zacząć od niego, a nie z B.
Aktualizacja 4
Nazewnictwo jest używane z aktualizacji 3.
wget OPCJE www.foo.com/B/C/A/A.html
Pytanie brzmi, jakie są opcje, aby uzyskać wszystkie strony z katalogu B i poniżej (wiedząc, że musisz zacząć od A.html).
bar2
katalog i całą jego zawartość. Jeśli to nie to, proszę wyjaśnić.
bar2
zostać ściągnięty, ale niebar1
? Gdziebar2
będzie mieszkać? Co się stanie, jeśli dwa lub więcej katalogów, których nie chcesz, mają podkatalogi o identycznych nazwach, czy ich zawartość powinna zostać scalona? Prawie na pewno łatwiej jest po prostu zdobyć całą tę cholerną stronę, a następnie przycinać / przenosić rzeczy, jak chcesz.