Yararlı olsa da, önceki yanıtlar altta yatan soruyu özlü, güvenilir ve tekrarlanabilir bir şekilde çözemez. Bu yazıda, her biriyle ilgili zorlukları kısaca detaylandırıyoruz ve daha sonra mütevazı bir httrack
çözüm sunuyoruz.
Arka fon
Bununla birlikte, buna başlamadan önce, mpy'nin iyi yazılmış tepkisine bakmayı düşünün . Ne yazık ki ihmal edilen bir görevde, mpy Wayback Machine'in belirsiz (ve dürüstçe gizemli) arşiv şemasını titizlikle belgelemektedir.
Şaşırtıcı olmayan bir şekilde, hoş değil. Siteleri tek bir dizine güvenli bir şekilde arşivlemek yerine, Wayback Machine geçici olarak tek bir siteyi sayısal olarak tanımlanmış iki veya daha fazla kardeş dizinine yayar. Bunun yansıtmayı zorlaştırdığını söylemek önemli bir eksikliktir.
Bu şema tarafından sunulan korkunç tuzakları anlamak, önceki çözümlerin yetersizliğini anlamak için temeldir. Hadi başlayalım, olur mu?
Önceki Çözüm 1: wget
İlgili StackOverflow sorusu "Eski web sitesini waybackmachine'den kurtar" muhtemelen wget
Wayback yansıtma için önerilen en kötü suçludur . Doğal olarak, bu öneri temelde sağlamdır.
Karmaşık harici URL yeniden yazmanın (ör. Privoxy
) Olmaması durumunda, wget
Wayback arşivlenen siteleri güvenilir bir şekilde yansıtmak için kullanılamaz. As mpy seçtiğiniz yansıtma aracı olmayan geçişli indirmenizi izin vermelidir ne olursa olsun altında ayrıntıları "Sorun 2 + Çözüm," sadece hedef siteye ait URL'lerin. Varsayılan olarak, yansıtma araçlarının çoğu , hem hedef siteye hem de o siteye bağlı sitelere ait tüm URL'leri geçici olarak indirir. Bu, en kötü durumda "tüm İnternet" anlamına gelir.
Somut bir örnek verilebilir. Örnek etki alanını yansıtma zaman kearescue.com
, sizin yansıtma aracı gerekir :
- Eşleşen tüm URL'leri dahil et
https://web.archive.org/web/*/http://kearescue.com
. Bunlar, hedef site tarafından sağlanan varlıklardır (ör https://web.archive.org/web/20140521010450js_/http_/kearescue.com/media/system/js/core.js
.).
- Diğer tüm URL'leri hariç tutun. Bunlar, yalnızca hedef siteden (örn
https://web.archive.org/web/20140517180436js_/https_/connect.facebook.net/en_US/all.js
.) Bağlantılı diğer siteler tarafından sağlanan varlıklardır .
Bu tür URL'lerin hariç tutulmaması, genellikle sitenin arşivlendiği sırada, özellikle harici olarak barındırılan varlıkları (ör. YouTube videoları) gömen siteler için arşivlenen İnternet'in tamamının veya çoğunun tamamını çeker.
Bu kötü olur. İken wget
yaptığı bir komut satırı sağlamak --exclude-directories
hariç tutulacak URL'leri eşleşen bir veya daha fazla desen kabul seçeneği, bunlar değil genel amaçlı düzenli ifadeler; *
sözdizimi sıfır veya daha fazla karakter hariç/
, basit globlardır . Hariç tutulacak URL'ler keyfi pek içerdiğinden /
karakterleri, wget
olamaz bu URL'leri dışlamak için kullanılabilir ve dolayısıyla olamaz ayna Wayback-arşivlenmiş sitelere kullanılabilir. Dönemi. Talihsiz hikayenin sonu.
Bu konu en az 2009'dan beri kamuya açık durumda. Henüz çözülmedi. Sonraki!
Önceki Çözüm 2: Not Defteri
PrinzScrapBook
, bir Firefox eklentisi önerir . Bir Firefox eklentisi.
Muhtemelen bilmeniz gereken tek şey buydu. İken ScrapBook
bireyin Filter by String...
işlevselliğini yapar adresi yukarıda bahsedilen 'Sorun 2 + Çözüm,' o mu değil 'Sorun 3 + Çözümü' sonradan ele - yabancı çiftleri yani sorunu.
ScrapBook
Eski sorunu yeterince ele alıp almadığı tartışmalıdır . Mpy'ın belirttiği gibi :
Karalama Defteri şimdiye kadar siteyi tamamen ele geçirememiş olsa da ...
Güvenilmez ve aşırı basit çözümler çözüm değildir. Sonraki!
Önceki Çözüm 3: wget + Privoxy
mpy daha sonra hem wget
ve hem de sağlam bir çözüm sunar Privoxy
. Yapılandırılması oldukça basit olsa da wget
, makul bir Privoxy
şey değildir. Veya basit.
Nedeniyle düzgün yüklemek, yapılandırmak ve kullanmak ölçülemez teknik engel için Privoxy
, biz onaylamak henüz mpy 'ın çözümü. Bu gerektiğini ölçeklenebilir, sağlam bir şekilde çalışır. Giriş engelleri düşünüldüğünde, bu çözüm büyük ölçekli otomasyon için küçük ve orta ölçekli siteleri kurtarmaya çalışan ortalama bir web yöneticisinden muhtemelen daha uygundur.
Mı wget
+ Privoxy
değerinde bir göz? Kesinlikle. Ancak çoğu süper kullanıcıya daha basit, daha kolay uygulanabilir çözümlerle daha iyi hizmet verilebilir.
Yeni Çözüm: httrack
Enter httrack
, wget
yansıtma işlevinin bir üst kümesini uygulayan bir komut satırı yardımcı programı . httrack
hem kalıp tabanlı URL hariç tutma hem de basit site yeniden yapılandırmasını destekler. İlki mpy'nin "Problem 2 + Çözümü" nü çözer ; ikincisi, "Sorun 3 + Çözüm."
Aşağıdaki soyut örnekte değiştirin:
${wayback_url}
hedef sitenizin tamamını arşivleyen üst düzey dizinin URL'sine göre (ör 'https://web.archive.org/web/20140517175612/http://kearescue.com'
.).
${domain_name}
${wayback_url}
önek hariç tutulan aynı alan adıyla http://
(ör 'kearescue.com'
.).
İşte başlıyoruz. Yükleyin httrack
, cd
sitenizin indirilmesini istediğiniz yerel dizine bir terminal penceresi açın ve aşağıdaki komutu çalıştırın:
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
Tamamlandığında, geçerli dizin o URL'den yansıtılan her dosya türü için bir alt dizin içermelidir. Bu genellikle en azından şunları içerir:
css
, tüm yansıtılmış CSS stil sayfalarını içerir.
html
, tüm yansıtılmış HTML sayfalarını içerir.
js
, yansıtılmış tüm JavaScript’leri içerir.
ico
yansıtılmış bir favicon içerir.
Beri httrack
içten bu yapısını yansıtacak şekilde tüm indirilen içeriğin yeniden yazar değişiklik yapılmadan olduğu gibi, siteniz artık göz atılabilir olmalıdır. Yukarıdaki komutu zamanından önce durdurduysanız ve indirmeye devam etmek istiyorsanız, --continue
seçeneği tam olarak aynı komuta ekleyin ve tekrar deneyin.
Bu kadar. Harici bükülme, hataya açık URL yeniden yazma veya kural tabanlı proxy sunucuları gerekmez.
Keyfini çıkarın, diğer süper kullanıcılar.
20110722080716
anlık görüntü altında erişilebilir olmaması , dolayısıyla wget'ın-np
seçeneği yardımcı olmaz.