Как изменить относительный URL на абсолютный URL в wget - PullRequest
1 голос
/ 21 июня 2010

Я пишу сценарий оболочки для загрузки и отображения контента с сайта и сохраняю этот контент в своей локальной файловой системе.

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

/usr/sfw/bin/wget -q -p  -nH -np --referer=$INFO_REF --timeout=300 -P $TMPDIR $INFO_URL

, где INFO_REF - это страница, на которой мне нужно отобразить содержимое из INFO_URL.

Проблема в том, что я могу получить содержимое (images / css)как html-страница, но в этом html ссылки на изображения и заголовки, которые указывают на другой сайт, не работают, а путь URL (ссылки на изображения) меняется на путь моей локальной файловой системы.

Я попытался добавить опцию -k в wget, и с помощью этой опции эти URL-адреса указывают на правильное местоположение, но теперь изображения не приходят, поскольку путь к изображениям меняется с относительного на абсолютное местоположение.Без -k изображения будут отображаться правильно.

Скажите, пожалуйста, какой вариант я могу использовать, чтобы изображения и ссылки на странице отображались правильно.Нужно ли использовать две отдельные команды wget, одну для изображений, а другую для ссылок на странице?

1 Ответ

2 голосов
/ 28 марта 2011

Согласно руководству wget:

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

wget -E -H -k -K -p http://site/document

Чтобы настроить его в соответствии с вашими потребностями:

/usr/sfw/bin/wget -q -E -H -k -K -p -nH --referer=$INFO_REF --timeout=300 -P $TMPDIR $INFO_URL

Я удалил -np, потому что я думаю, что это неправильно (возможно, зависимость страницы находится в родительском каталоге).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...