Копировать сайт через HTTP для загрузки изображений, HTML и CSS

22

Мне нужно скопировать сайт через HTTP. Мне нужно загрузить изображения, HTML, CSS и JavaScript, а также организовать их в файловой системе.

Кто-нибудь знает как это сделать?

Дэймон
источник
2
Вы должны упомянуть, что вы не собираетесь использовать это программное обеспечение для нарушения авторских прав. В противном случае мы просто предполагаем, что вы хотите отразить чужой контент, чтобы на нем можно было зарабатывать.
Belgariontheking
Когда-то у нас был клиент, который хотел уйти, но взял статическую HTML-версию своего сайта, отказавшись от CMS. Я использовал HTTrack для генерации статического сайта. Хорошо работает на Windows и Ubuntu.
TRiG
4
@belgariontheking: Интересно, вы предполагаете худшее. Мы также используем WinHTTrack для загрузки статической HTML-версии нашего собственного динамического веб-сайта.
Umber Ferrule

Ответы:

40
wget -erobots=off --no-parent --wait=3 --limit-rate=20K -r -p -U "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)" -A htm,html,css,js,json,gif,jpeg,jpg,bmp http://example.com

Это работает в консоли.

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

Обратите внимание на -Aпараметр, который указывает список типов файлов, которые вы хотите загрузить.

Вы также можете использовать другой тег, -D domain1.com,domain2.comчтобы указать серию доменов, которые вы хотите загрузить, если у них есть другой сервер или что-то еще для размещения файлов разных типов. Там нет безопасного способа автоматизировать это для всех случаев, если вы не получаете файлы.

wgetобычно предустановлен в Linux, но может быть легко скомпилирован для других систем Unix или легко загружен для Windows: GNUwin32 WGET

Используйте это для добра, а не зла.

DevelopersDevelopersDevelopers
источник
1
wget -erobots = off --no-parent --wait = 3 --limit-rate = 50K -r -p -U "Mozilla / 4.0 (совместимо; MSIE 7.0; Windows NT 5.1)" -k --directory-prefix "C: \ rip" - реквизиты страницы -Ahtm, aspx, php, jsp, asp, zip, png, html, css, js, json, gif, jpeg, jpg, bmp domain.com
Chris S
Будет ли это работать на "Vanity URLs"? Я беспокоюсь о своем контенте (хорошо, песнях), написанном на сайте социальной сети, и я хочу сделать его резервную копию локально. Сайт "www.example.com", но есть пустой URL с моим именем пользователя "avi.example.com". Я не хочу скачивать весь сайт, только мой контент!
Ави
В Linux вы можете установить wget из исходников. Например, версия Ubuntu не анализирует CSS, в то время как восходящий wget это делает.
ГДР
16

Хорошее бесплатное решение: HTTrack

HTTrack является бесплатной (GPL, libre / free software) и простой в использовании автономной утилитой браузера.

Он позволяет вам загружать сайт World Wide Web из Интернета в локальный каталог, рекурсивно создавать все каталоги, получать HTML, изображения и другие файлы с сервера на ваш компьютер. HTTrack организует относительную структуру ссылок исходного сайта. Просто откройте страницу «зеркального» веб-сайта в своем браузере, и вы сможете просматривать сайт по ссылке, как если бы вы просматривали его в Интернете. HTTrack также может обновить существующий зеркальный сайт и возобновить прерванные загрузки. HTTrack полностью настраивается и имеет встроенную справочную систему.

slhck
источник
7

В системах Linux, wget делает это, в значительной степени.

Его также перенесли на несколько других платформ, как упоминалось в нескольких других ответах.

GWLlosa
источник
Поскольку это Linux, я бы, вероятно, просто создал виртуальную машину Ubuntu, запустил wget и перенес файлы обратно на мой хост-компьютер. Похоже, это будет быстрее, чем портировать на Windows. :) (Конечно, портирование на Windows - это, пожалуй, хорошее упражнение!)
JMD
Я запускаю Debian на своей машине. Могу ли я сказать wget, что нужно извлечь связанные sub dirs / javascript / css / images, предоставив ему только корневой домен http?
Дэймон
# Скачать все содержимое example.com wget -r -l 0 example.com
Да ... или использовать собственный порт Windows, или использовать Cygwin ...
Tmdean
2

Очевидно, WGet упоминался несколько раз. Лучший пользовательский интерфейс, который я нашел для этого

Существуют и другие интерфейсы для WGet, некоторые из которых являются кандидатами на худший вопрос.

Крис С
источник
1

Посмотрите на расширение Scrapbook для Firefox. Он отлично справляется с этой задачей, а также интегрируется с firebug и позволяет вам удалять элементы из DOM перед сохранением, если хотите.

GBA
источник
1

Вам нужно использовать wget - который доступен для большинства платформ. curl не будет запрашивать документы рекурсивно, что является одной из основных сильных сторон wget.

Linux: (обычно входит в дистрибутив) http://www.gnu.org/software/wget/
Windows: http://gnuwin32.sourceforge.net/packages/wget.htm
Mac: http: //www.geekology. co.za/blog/2009/02/macports-compile-and-install-open-source-software-on-mac-os-x/

ПОЖАЛУЙСТА, убедитесь, что вы не забиваете сайт - установите подходящие задержки между запросами и убедитесь, что он соответствует условиям обслуживания сайта.

-Адам

Адам Дэвис
источник
на самом деле, это наши серверы, которые мы будем бить. сайт динамически генерируется через PHP, а CMS / DB была искажена. это запутанная история, я разработчик, который только что пришел сюда. но сейчас мы строим все в Джанго, так что вам не о чем беспокоиться.
Дэймон
1

На самом деле, после моего комментария в посте GWLlosa, я только что вспомнил, что у меня установлен GnuWin32, и, конечно же, он содержит Windows-порт wget.

http://sourceforge.net/projects/gnuwin32/

GnuWin32 provides Win32-versions of GNU tools,
or tools with a similar open source licence.
The ports are native ports, that is they rely
only on libraries provided with any 32-bits
MS-Windows operating system, such as
MS-Windows 95 / 98 / 2000 / NT / XP
JMD
источник
1

Я использовал это несколько лет назад, и это сработало хорошо. Только для Windows Раньше был рекламным, но больше не видимо:

http://www.webreaper.net/

Одилон Редо
источник
1

wget --random-wait -r -p -e robots=off -U "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)" --limit-rate=20k -b http://www.example.com

  • -p Параметр: wget включает все файлы, включая изображения.
  • -e robots=off : игнорировать правила сайта robots.txt
  • -U "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)" : строка агента пользователя
  • --random-wait : избегать попадания в черный список
  • --limit-rate=20k : ограничивает скорость загрузки файлов.
  • -b : продолжает wget после выхода из системы.
davidcondrey
источник
Эти параметры я использую. Я также добавляю -c(или --continue) параметр, когда что-то идет не так, и мне нужно перезапустить процесс.
kub1x