Я пытаюсь сделать зеркало веб-сайта, но URL-адреса включают в себя несколько путей, которые перекрываются при копировании в файлы на диске в обычном порядке wget
. Проблема проявляется в таких URL-адресах, как http://example.com/news
и http://example.com/news/article1
.с помощью wget для зеркального отображения веб-сайта с пустым и подпапкой с таким же именем
Wget загружает эти URL как /news
и /news/article1
, но это означает, что файл /news
перезаписывается папкой с тем же именем.
Правильное статическое зеркало требует, чтобы эти два URL-адреса загружались вместо /news/index.html
и /news/article1
.
Я попытался обойти эту проблему, выполнив wget
дважды и перемещая файлы соответственно, но это не сработало для меня. Путь /news
имеет ссылки на /news/article1
, которые необходимо преобразовать. Я использую параметр -k
для преобразования ссылок, но если я дважды запускаю wget
, он не преобразует ссылки между этими несвязанными загруженными файлами.
Вот моя команда:
wget -p -r -l4 -k -d -nH http://example.com
Вот пример работы вокруг, что я пробовал:
# wget once at first level (gets /news path but not /news/*)
wget -p -r -l1 -k -nH http://example.com
# move /news file to temp path
mv news /tmp/news.html
# wget again to get everything else (notice the different level value)
wget -p -r -l4 -k -nH http://example.com
# move temp path back to /news/index.html
mv /tmp/news.html news/index.html
В приведенном выше примере, ссылки на /news
страницы, которые, как предполагается, point to /news/article1
не были преобразованы.
Кто-нибудь знает, как обойти это с помощью wget
? Есть ли другой инструмент, который будет работать лучше?
Я думаю (большинство) * Linux * файловые системы не позволяют файл и директорию с тем же именем в любом случае. Разрешено ли переименовывать * файлы *, чтобы отличать их от каталогов? –
@CommuSoft, ДА! 'wget' может переименовывать HTML-файлы, чтобы добавить расширение' .html'. Спасибо за помощь! – dayer4b