22

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

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

11 ответов11

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

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

16

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

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

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

7

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

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

2

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

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

1

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

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/

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

-Адам

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
1

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

http://www.webreaper.net/

0

Я думаю, что IDM захват сайта - лучшее решение, есть также Teleport pro

0

Free Download Manager может также загружать целые сайты.

Windows только я думаю.

0

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 после выхода из системы.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .