Каков наилучший способ сохранить полную веб-страницу на сервере Linux? - PullRequest
12 голосов
/ 22 января 2011

Мне нужно заархивировать полные страницы, включая любые связанные изображения и т. Д., На моем сервере Linux.Ищете лучшее решение.Есть ли способ сохранить все активы и затем связать их все для работы в одном каталоге?

Я думал об использовании curl, но я не уверен, как все это сделать.Также, возможно, мне понадобится PHP-DOM?

Есть ли способ использовать Firefox на сервере и копировать временные файлы после загрузки адреса или аналогичного?

Любой и все вводимые данныедобро пожаловать.

Редактировать:

Кажется, что wget "не" будет работать, так как файлы должны быть отображены.У меня установлен Firefox на сервере, есть ли способ загрузить URL в Firefox, а затем получить временные файлы и очистить временные файлы после?

Ответы [ 4 ]

14 голосов
/ 22 января 2011

wget может сделать это, например:

wget -r http://example.com/

Это отразит весь сайт example.com.

Вот некоторые интересные варианты:

-Dexample.com: не переходить по ссылкам других доменов
--html-extension: переименовывать страницы с типом содержимого text / html в .html

Руководство: http://www.gnu.org/software/wget/manual/

9 голосов
/ 28 сентября 2016

Используйте следующую команду:

wget -E  -k -p http://yoursite.com

Используйте -E для настройки расширений.Используйте -k для преобразования ссылок для загрузки страницы из вашего хранилища.Используйте -p для загрузки всех объектов внутри страницы.

Обратите внимание, что эта команда не загружает другие страницы, на которые есть гиперссылка на указанной странице.Это означает, что эта команда загружает только объекты, необходимые для правильной загрузки указанной страницы.

6 голосов
/ 22 января 2011

Если бы все содержимое веб-страницы было статичным, вы могли бы обойти эту проблему с помощью чего-то вроде wget:

$ wget -r -l 10 -p http://my.web.page.com/

или некоторых его вариантов.

Поскольку у вас также есть динамические страницы, вы вообще не можете заархивировать такую ​​веб-страницу, используя wget или любой простой HTTP-клиент.Правильный архив должен включать в себя содержимое серверной базы данных и любые серверные сценарии.Это означает, что единственный способ сделать это правильно - скопировать резервные файлы на стороне сервера .Это включает, по крайней мере, корень документа сервера HTTP и любые файлы базы данных.

РЕДАКТИРОВАТЬ:

В качестве обходного пути вы можете изменить свою веб-страницу так, чтобы пользователь с соответствующими привилегиями мог загрузить все сервер-сторонние файлы, а также дамп текстового режима базы данных (например, дамп SQL). Если вы используете провайдера виртуального хостинга, большинство из них предоставляют некоторый веб-интерфейс, который позволяетна весь сайт.Если вы используете реальный сервер, вы можете установить большое количество резервных решений, в том числе несколько веб-решений для размещенных сайтов.

2 голосов
/ 22 января 2011
wget -r http://yoursite.com

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

Примечание: я считаю, wget и любая другая программа не поддерживает загрузку изображений, указанных с помощью CSS, поэтому вам, возможно, придется сделать это самостоятельно.Вот некоторые полезные аргументы: http://www.linuxjournal.com/content/downloading-entire-web-site-wget

...