Зеркально отразить блог с помощью wget

9

Я пытаюсь отразить блог, например www.example.com, с wget.

Я использую wget со следующими параметрами (переменные оболочки подставляются правильно):

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

Блог содержит изображения, которые находятся на других доменах.

Несмотря на то, что я указал -pопцию (загрузка ресурсов связанных страниц), эти изображения не загружаются, если я не укажу каждый домен явно в -Dопции.

Если я опущу эту -Dопцию, wget будет переходить по каждой внешней ссылке www.example.comи загружать весь интернет.

Можно ли wgetпросто перейти по каждой ссылке www.example.comи загрузить необходимые ресурсы для каждой страницы, независимо от того, находятся ли они в одном домене или нет, без необходимости явного указания каждого домена?

Костас Андрианопулос
источник
Я бы тоже хотел найти хороший ответ на этот вопрос. Я столкнулся с той же ситуацией и не смог найти ни одного вызова wget, который бы это сделал. В конце концов я использовал wget -N -E -H -k -K -pсначала и придумал скрипт для извлечения недостающих связанных изображений.
Lemonsqueeze
5
Согласно этому , httrack является убийцей для этого. Я сделаю это в следующий раз вместо wget.
Lemonsqueeze
Предполагая, что ваш блог (за исключением ресурсов страницы) не охватывает несколько доменов, попробуйте удалить оба, -D $domainsа также -H. Без этого -Hон должен оставаться в вашем домене, но при этом получать ресурсы прямой страницы, даже если они находятся в другом домене.
blubberdiblub

Ответы:

1

Нет, единственный способ - указать домены, за которыми вы хотите, чтобы wget следовал, используя -D или --domains = [domain list] (в виде списка через запятую)

искры
источник