Utwórz kopię lustrzaną bloga za pomocą wget

9

Próbuję dublować blog, np . Za www.example.compomocą wget.

Używam wget z następującymi opcjami (zmienne powłoki są poprawnie podstawiane):

wget -m -p -H -k -E -np \
    -w 1 \
    --random-wait \
    --restrict-file-names=windows \
    -P $folder \
    -Q${quota}m \
    -t 3 \
    --referer=$url \
    -U 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.6) Gecko/20070802 SeaMonkey/1.1.4' \
    -e robots=off \
    -D $domains
    -- $url

Blog zawiera obrazy znajdujące się w innych domenach.

Mimo że podałem -popcję (pobierz połączone strony zasobów), obrazy te nie są pobierane, chyba że wyraźnie zaznaczę każdą domenę w -Dopcji.

Jeśli pominę tę -Dopcję, wget będzie podążał za każdym linkiem na zewnątrz www.example.comi pobierał cały internet.

Czy można wgetpodążać za każdym linkiem poniżej www.example.comi pobierać wymagane zasoby każdej strony, niezależnie od tego, czy znajdują się one w tej samej domenie, czy też nie, bez konieczności wyraźnego określania każdej domeny?

Kostas Andrianopoulos
źródło
Chciałbym również znaleźć dobrą odpowiedź na to pytanie. Natrafiłem na tę samą sytuację i nie mogłem znaleźć ani jednego wywołania wget, które by to zrobiło. Skończyło się na wget -N -E -H -k -K -ppierwszym i wymyśliłem skrypt, aby pobrać brakujące połączone obrazy.
lemonsqueeze
5
Zgodnie z tym jednym , httrack jest zabójcą w tej sprawie. Następnym razem spróbuję zamiast wget.
lemonsqueeze
Zakładając, że Twój blog (minus zasoby strony) nie obejmuje wielu domen, spróbuj usunąć zarówno je, -D $domainsjak i -H. Bez -Hniego powinien pozostać w domenie, ale nadal pobierać bezpośrednie zasoby strony, nawet jeśli znajdują się w innej domenie.
blubberdiblub,

Odpowiedzi:

1

Nie, jedynym sposobem jest określenie domen, które chcesz śledzić za pomocą -D lub --domains = [lista domen] (w formie listy oddzielonej przecinkami)

iskry
źródło