Как я могу скачать весь сайт?

350

Как я могу скачать все страницы с сайта?

Любая платформа в порядке.

джо
источник
2
Проверьте serverfault.com/questions/45096/website-backup-and-download на сбой сервера.
Марко Картер
@tnorthcutt, я тоже удивлен. Если я не помню совершенно неправильно, мой ответ на Wget был принят, и это выглядело как улаженная вещь. Хотя я не жалуюсь - внезапно возобновленное внимание дало мне больше, чем награду за награду. : P
Jonik
ты пробовал IDM? superuser.com/questions/14403/… мой пост похоронен. Что вы нашли отсутствующим в IDM?
Лазер
5
@joe: Могу помочь, если бы вы подробно рассказали о том, что недостающие функции ...
Илари Каджасте
browse-offline.com может загрузить полное дерево веб-сайта, чтобы вы могли ... просматривать его в автономном режиме
Menelaos Vergis

Ответы:

334

HTTRACK работает как чемпион по копированию содержимого всего сайта. Этот инструмент может даже захватить части, необходимые, чтобы веб-сайт с активным содержимым кода работал в автономном режиме. Я поражен тем, что он может воспроизводить в автономном режиме.

Эта программа сделает все, что от вас требуется.

Хорошей охоты!

Axxmasterr
источник
7
Использовать это годами - очень рекомендуется.
Umber Ferrule
4
Будет ли это копировать фактический код ASP, который работает на сервере?
Taptronic
8
@ Оптимальные решения: нет, это невозможно. Для этого вам понадобится доступ к серверам или к исходному коду.
Саша Чедыгов
2
Попробовав httrack и wget для сайтов с авторизацией, я должен склоняться в пользу wget. Не удалось заставить httrack работать в таких случаях.
Лев
1
Какой вариант для аутентификации?
Винсент Мэтью
272

Wget - классический инструмент командной строки для решения подобных задач. Он поставляется с большинством систем Unix / Linux, и вы можете получить его и для Windows . На Mac Homebrew - это самый простой способ установить его ( brew install wget).

Вы бы сделали что-то вроде:

wget -r --no-parent http://site.com/songs/

Для получения дополнительной информации см. Руководство по Wget и его примеры , например:

Jonik
источник
12
Нет лучшего ответа, чем этот - wget может сделать все что угодно: 3
Phoshi
6
+1 за включение --no-parent. обязательно используйте --mirror вместо -r. и вы можете включить -L / - относительно не переходить по ссылкам на другие серверы.
Quackote Quixote
2
Как я и просил httrack.com - получит ли этот инструмент строки cmd ASP- код или он просто получит рендеринг HTML-кода? Я должен попробовать это. Это может быть немного тревожно для разработчиков, если это произойдет ...
Taptronic
6
@ Оптимальный вывод HTML, конечно - он получит код, только если сервер будет неправильно настроен
Jonik
2
к сожалению, это не работает для меня - есть проблема со ссылками на файлы CSS, они не изменены на относительные, то есть вы можете увидеть что-то вроде этого в файлах: <link rel = "stylesheet" type = "text / css" href = "/ static / css / reset.css" media = "screen" />, которая не работает локально хорошо, если только нет смысла обманывать firefox, думая, что определенный каталог является корнем.
Гор
147

Используйте wget:

wget -m -p -E -k www.example.com

Варианты объяснены:

-m, --mirror            Turns on recursion and time-stamping, sets infinite 
                          recursion depth, and keeps FTP directory listings.
-p, --page-requisites   Get all images, etc. needed to display HTML page.
-E, --adjust-extension  Save HTML/CSS files with .html/.css extensions.
-k, --convert-links     Make links in downloaded HTML point to local files.
user9437
источник
8
+1 за пояснения предложенных вариантов. (Хотя я не думаю, что --mirrorэто говорит само за себя. Вот со страницы руководства: « Эта опция включает рекурсию и отметку времени, устанавливает бесконечную глубину рекурсии и сохраняет списки каталогов FTP. В настоящее время она эквивалентна -r -N - l inf --no-remove-
list
2
Если вы не хотите загружать все в папку с именем домена, который хотите зеркалировать, создайте свою собственную папку и используйте опцию -nH (которая пропускает часть хоста).
Рафаэль Бугаевский
2
Что делать, если требуется авторизация?
Val
4
Я пытался использовать ваш, wget --mirror -p --html-extension --convert-links www.example.comи он только что скачал индекс. Я думаю, вам нужно -rскачать весь сайт.
Эрик Бротто
4
для тех, кто обеспокоен уничтожением сайта из-за трафика / слишком большого количества запросов, используйте -w seconds(чтобы подождать несколько секунд между запросами или --limit-rate=amount, чтобы указать максимальную пропускную способность, которую следует использовать при загрузке
vlad-ardelean
8

Internet Download Manager имеет утилиту Site Grabber с множеством опций, которая позволяет вам полностью загрузить любой веб-сайт, какой вы захотите, так, как вы этого хотите.

  1. Вы можете установить ограничение на размер загружаемых страниц / файлов.

  2. Вы можете установить количество посещаемых филиалов.

  3. Вы можете изменить поведение скриптов / всплывающих окон / дубликатов

  4. Вы можете указать домен, только под этим доменом будут загружены все страницы / файлы, соответствующие требуемым настройкам.

  5. Ссылки могут быть преобразованы в автономные ссылки для просмотра

  6. У вас есть шаблоны, которые позволяют вам выбрать вышеуказанные настройки для вас

введите описание изображения здесь

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

Lazer
источник
5

Я расскажу об онлайн буферизации, которую используют браузеры ...

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

Интернет-провайдеры, как правило, имеют кэширующие серверы, на которых хранятся копии часто используемых веб-сайтов, таких как ESPN и CNN. Это избавляет их от необходимости посещать эти сайты каждый раз, когда кто-то из их сети посещает их. Это может привести к значительной экономии в количестве дублированных запросов к внешним сайтам к провайдеру.

Axxmasterr
источник
5

Мне нравится Offline Explorer .
Это условно-бесплатная программа, но она очень хорошая и простая в использовании.

Эран
источник
4

Я не делал этого много лет, но есть еще несколько утилит там. Вы можете попробовать Web Snake . Я думаю, что использовал это много лет назад. Я сразу вспомнил имя, когда прочитал твой вопрос.

Я согласен со Стейси. Пожалуйста, не забивайте их сайт. Очень плохо.

Бобби Ортис
источник
3

Попробуйте браузер BackStreet .

Это бесплатный, мощный автономный браузер. Высокоскоростная многопоточная программа для загрузки и просмотра веб-сайтов. Делая несколько одновременных запросов к серверу, BackStreet Browser может быстро загрузить весь веб-сайт или часть сайта, включая HTML, графику, Java-апплеты, звуковые и другие определяемые пользователем файлы, и сохраняет все файлы на жестком диске, в их исходном формате, или в виде сжатого ZIP-файла и просмотра в автономном режиме.

введите описание изображения здесь

джо
источник
3

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

кренделя
источник
3

DownThemAll - это надстройка Firefox, которая загружает весь контент (например, аудио- или видеофайлы) для определенной веб-страницы одним щелчком мыши. Это не загружает весь сайт, но это может быть то, что вопрос искал.

Уилл М
источник
Он способен загружать только ссылки (HTML) и медиа (изображения).
Ain
3

Для Linux и OS X: я написал grab-site для архивирования целых сайтов в файлы WARC . Эти файлы WARC могут быть просмотрены или извлечены. grab-site позволяет вам контролировать, какие URL-адреса пропустить, используя регулярные выражения, и их можно изменить, когда выполняется сканирование. Он также поставляется с широким набором настроек по умолчанию для игнорирования нежелательных URL.

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

Иван Козик
источник
0

Почтенный FreeDownloadManager.org также имеет эту функцию.

Free Download Manager имеет две формы в двух формах: Site Explorer и Site Spider :

Обозреватель сайта Обозреватель
сайта позволяет просматривать структуру папок на веб-сайте и легко загружать необходимые файлы или папки.
HTML Spider
Вы можете загрузить целые веб-страницы или даже целые веб-сайты с помощью HTML Spider. Инструмент можно настроить для загрузки файлов только с указанными расширениями.

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

Дэвид д С е Фрейтас
источник
-3

Firefox может делать это изначально (по крайней мере, FF 42). Просто используйте «Сохранить страницу»

введите описание изображения здесь

user1032531
источник
6
Неправильно! Вопрос в том, как сохранить весь веб-сайт. Firefox не может этого сделать.
2
Ваш метод работает, только если это одностраничный сайт, но если на сайте 699 страниц? Было бы очень утомительно ...
Quidam
-4

Я считаю, что Google Chrome может сделать это на настольных устройствах, просто зайдите в меню браузера и нажмите Сохранить веб-страницу.

Также обратите внимание, что такие сервисы, как pocket, на самом деле не могут спасти веб-сайт и поэтому подвержены гниению ссылок.

И наконец, обратите внимание, что копирование содержимого сайта может нарушать авторские права, если это применимо.

jiggunjer
источник
3
Веб - страница в вашем браузере только один из многих веб - сайта .
Арджан
@ Arjan Я думаю, это делает мой вариант трудоемким. Я полагаю, что чаще всего люди просто хотят сохранить одну страницу, поэтому этот ответ может быть лучше для тех людей, которые приходят сюда для этого.
Jiggunjer