Хоча корисні, попередні відповіді не можуть чітко, надійно та повторно вирішити основне питання. У цій публікації ми коротко деталізуємо труднощі з кожним, а потім запропонуємо скромне httrack
рішення.
Фон
Перш ніж ми дістанемося до цього, подумайте про те, щоб прочитати добре письмову відповідь mpy . У h [є | er] сумно занедбаному дописі, mpy суворо документує незрозумілу (і чесно сумнівну) архівну схему.
Не дивно, що це не дуже. Замість того, щоб сумлінно архівувати сайти в єдину директорію, The Wayback Machine ефемерно поширює один сайт через два або більше числових ідентифікаційних каталогів братів і сестер. Сказати, що це ускладнює дзеркальне відображення, було б суттєвим заниженням.
Розуміння жахливих підводних каменів, представлених цією схемою, є основою для розуміння неадекватності попередніх рішень. Давайте продовжимо це, чи не так?
Попереднє рішення 1: wget
Пов'язане питання StackOverflow "Відновити старий веб-сайт за межами waybackmachine" , мабуть, є найгіршим правопорушником у цьому плані, рекомендуючи wget
для дзеркального відображення Wayback. Природно, що ця рекомендація є принципово невиправданою.
За відсутності складного зовнішнього переписування URL-адреси (наприклад, Privoxy
), wget
не можна використовувати для надійного відображення сайтів, архівованих Wayback. Що стосується mpy деталей у розділі "Проблема 2 + Рішення", будь-який інструмент дзеркального відображення ви не маєте дозволяти неперехідно завантажувати лише URL-адреси, що належать цільовому сайту. За замовчуванням більшість дзеркальних інструментів транзитивно завантажують усі URL-адреси, що належать як цільовому сайту, так і сайтам, пов’язаним із цим сайтом, - що, в гіршому випадку, означає "весь Інтернет".
Конкретний приклад - це порядок. Під час дзеркального відображення прикладного домену kearescue.com
ваш інструмент дзеркального відображення повинен :
- Включити всі відповідні URL-адреси
https://web.archive.org/web/*/http://kearescue.com
. Це активи, надані цільовим сайтом (наприклад, https://web.archive.org/web/20140521010450js_/http_/kearescue.com/media/system/js/core.js
).
- Виключіть усі інші URL-адреси. Це активи, надані іншими веб-сайтами, лише пов'язаними з цільовим сайтом (наприклад,
https://web.archive.org/web/20140517180436js_/https_/connect.facebook.net/en_US/all.js
).
Якщо не виключати такі URL-адреси, як правило, використовується весь або більшість Інтернет-архівів на той час, коли сайт був заархівований, особливо для сайтів, на яких розміщені зовнішні ресурси (наприклад, відео YouTube).
Це було б погано. Хоча wget
дійсно забезпечують командний рядок --exclude-directories
варіанти приймають один або кілька шаблонів , відповідних URL - адреси , які будуть виключено, це НЕ загальне призначення регулярних вирази; це спрощені глобуси, *
синтаксис яких відповідає нулю або більше символів, виключаючи/
. Оскільки URL-адреси, які потрібно виключити, містять довільно багато /
символів, wget
їх не можна використовувати для вилучення цих URL-адрес, а отже, не можна використовувати для дзеркального відображення сайтів, архівованих Wayback. Період. Кінець нещасної історії.
Це питання публічно відоме з принаймні 2009 року. Це ще не вирішено. Далі!
Попереднє рішення 2: Записка
Prinz рекомендує ScrapBook
плагін Firefox. Плагін Firefox.
Це, мабуть, було все, що вам потрібно було знати. У той час як ScrapBook
«S Filter by String...
функціональність робить адреса вищезгаданої" Проблема 2 + Рішення, "це НЕ адреса подальшого" Проблема 3 + Рішення " , а саме - проблема сторонніх дублів.
Сумнівно, чи ScrapBook
адекватно вирішується колишня проблема. Як визнає mpy :
Хоча записках поки що не вдалося повністю захопити сайт ...
Ненадійні та надмірно спрощені рішення - це не рішення. Далі!
Попереднє рішення 3: wget + Privoxy
mpy тоді забезпечує надійне рішення, використовуючи як wget
і Privoxy
. Хоча wget
це досить просто налаштувати, Privoxy
що - небудь , але розумно. Або просто.
Через неправдиву технічну перешкоду належної установки, налаштування та використання Privoxy
ми ще не повинні підтвердити рішення mpy . Це повинно працювати масштабовано, надійно. Зважаючи на перешкоди для входу, це рішення, ймовірно, більше підходить для масштабної автоматизації, ніж середній веб-майстер, який намагається відновити сайти малого та середнього масштабу.
Чи варто wget
+ Privoxy
подивитися? Абсолютно. Але більшість суперпользователей може бути краще обслуговуватися простішими, більш доступними рішеннями.
Нове рішення: httrack
Enter httrack
- утиліта командного рядка, що реалізує набір wget
функцій дзеркального відображення. httrack
підтримує виключення URL-адрес на основі шаблону та спрощену реструктуризацію сайту. Колишній вирішує mpy 's "Проблема 2 + Рішення"; останнє, "Проблема 3 + рішення".
У наведеному нижче абстрактному прикладі замініть:
${wayback_url}
за URL-адресою каталогу верхнього рівня, що архівує цілісний цільовий сайт (наприклад, 'https://web.archive.org/web/20140517175612/http://kearescue.com'
).
${domain_name}
тим самим доменним іменем, що ${wayback_url}
виключається з префіксом http://
(наприклад, 'kearescue.com'
).
Ось і ми. Встановіть httrack
, відкрийте вікно терміналу cd
в локальний каталог, в який ви хочете завантажити ваш сайт, і запустіть таку команду:
httrack\
${wayback_url}\
'-*'\
'+*/${domain_name}/*'\
-N1005\
--advanced-progressinfo\
--can-go-up-and-down\
--display\
--keep-alive\
--mirror\
--robots=0\
--user-agent='Mozilla/5.0 (X11;U; Linux i686; en-GB; rv:1.9.1) Gecko/20090624 Ubuntu/9.04 (jaunty) Firefox/3.5'\
--verbose
Після завершення поточний каталог повинен містити один підкаталог для кожного файлу, відображеного з цієї URL-адреси. Зазвичай це включає щонайменше:
css
, що містить усі дзеркальні таблиці стилів CSS.
html
, що містить усі дзеркальні HTML-сторінки.
js
, що містить весь дзеркальний JavaScript.
ico
, що містить один дзеркальний фавікон.
Оскільки httrack
внутрішньо переписується весь завантажений вміст, щоб відобразити цю структуру, ваш сайт тепер має бути доступним для перегляду, як і без змін. Якщо ви передчасно зупинили вищевказану команду і хочете продовжити завантаження, додайте цю --continue
опцію до тієї самої команди та повторіть спробу.
Це воно. Ніяких зовнішніх викривлень, схильності до перезапису URL-адрес або проксі-серверів на основі правил не потрібно.
Насолоджуйтесь, товариші суперюзери.
20110722080716
знімка, отже,-np
опція wget не допоможе.