सहायक होते समय, पूर्व प्रतिक्रियाएँ संक्षिप्त रूप से, मज़बूती से, और बार-बार अंतर्निहित प्रश्न को हल करने में विफल होती हैं। इस पोस्ट में, हम संक्षेप में प्रत्येक के साथ कठिनाइयों का विस्तार करते हैं और फिर एक मामूली- httrackआधारित समाधान प्रदान करते हैं।
पृष्ठभूमि
हालांकि इससे पहले कि हम, mpy की अच्छी तरह से लिखित प्रतिक्रिया पर विचार करें। H [is | er] उदास रूप से उपेक्षित पद पर, Mpy ने सख्ती से वेबैक मशीन के अस्पष्ट (और ईमानदारी से मोटे तौर पर) अभिलेखीय योजना के दस्तावेज बनाए ।
आश्चर्यजनक रूप से, यह सुंदर नहीं है। एकल निर्देशिका में संग्रहणीय साइटों के बजाय, वेकबैक मशीन एक एकल साइट को दो या अधिक संख्यात्मक रूप से पहचाने जाने योग्य निर्देशिकाओं में फैलाती है। कहने का तात्पर्य यह है कि यह मिररिंग एक पर्याप्त समझ होगी।
इस योजना द्वारा प्रस्तुत भयानक नुकसान को समझना पूर्व समाधानों की अपर्याप्तता को समझना महत्वपूर्ण है। चलो इसके साथ चलो, हम करेंगे?
पिछला समाधान 1: wget
संबंधित स्टैकऑवरफ्लो प्रश्न "वेकबैकमैच से पुरानी वेबसाइट को पुनर्प्राप्त करें" इस संबंध में शायद सबसे खराब अपराधी है, wgetजो वेबैक मिररिंग के लिए सिफारिश कर रहा है। स्वाभाविक रूप से, यह सिफारिश मौलिक रूप से गैर जरूरी है।
जटिल बाहरी URL पुनर्लेखन (उदाहरण के लिए Privoxy) की अनुपस्थिति में, wgetमज़बूती से वेबैक-संग्रहीत साइटों का उपयोग नहीं किया जा सकता है। "प्रॉब्लम 2 + सॉल्यूशन" के तहत खसखस विवरण के रूप में , जो भी मिररिंग टूल आप चुनते हैं, वह आपको गैर-संक्रमणीय रूप से केवल लक्ष्य साइट से संबंधित 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) से जुड़ी हुई हैं ।
इस तरह के यूआरएल को बाहर करने में विफल रहने से आमतौर पर सभी या अधिकांश इंटरनेट को खींचा जाता है, जिस समय साइट को संग्रहीत किया गया था, विशेष रूप से बाहरी होस्ट की गई परिसंपत्तियों (उदाहरण के लिए, YouTube वीडियो) को एम्बेड करने वाली साइटों के लिए।
यह बुरा होगा। जबकि wget करता है एक कमांड लाइन प्रदान करते हैं --exclude-directoriesएक या अधिक URL मिलान बाहर रखा जाना पैटर्न को स्वीकार करने का विकल्प, ये हैं नहीं सामान्य प्रयोजन नियमित अभिव्यक्ति; वे सरलीकृत ग्लब्स हैं जिनका *सिंटैक्स शून्य या अधिक वर्णों को छोड़कर/ मेल खाता है । चूंकि बहिष्कृत किए जाने वाले URL में मनमाने ढंग से कई /वर्ण होते हैं , इसलिए इन URL को बाहर करने के लिए उपयोग wget नहीं किया जा सकता है और इसलिए इनका उपयोग वेबैक-संग्रहीत साइटों को मिरर करने के लिए नहीं किया जा सकता है। अवधि। दुर्भाग्यपूर्ण कहानी का अंत।
यह मुद्दा कम से कम 2009 से सार्वजनिक रिकॉर्ड पर है। इसे अभी तक हल नहीं किया गया है। आगे!
पिछला समाधान 2: स्क्रैपबुक
प्रिंज़ अनुशंसा करता है ScrapBook, एक फ़ायरफ़ॉक्स प्लगइन। एक फ़ायरफ़ॉक्स प्लगइन।
शायद आप सभी को पता होना चाहिए था। जबकि ScrapBookकी Filter by String...कार्यक्षमता करता है पता ऊपर उल्लिखित "समस्या 2 + समाधान," यह करता है नहीं बाद में "समस्या 3 + समाधान" को संबोधित - अर्थात्, बाहरी डुप्लिकेट की समस्या।
यह संदेहास्पद है कि क्या ScrapBookपूर्व समस्या को पर्याप्त रूप से संबोधित किया गया है। जैसा कि खस्ता मानते हैं:
हालांकि साइट को पूरी तरह से हथियाने के लिए स्क्रैपबुक अब तक विफल रहा ...
अविश्वसनीय और अत्यधिक सरलीकृत समाधान गैर-समाधान हैं। आगे!
पिछला समाधान 3: wget + Privoxy
mpy तो एक मजबूत समाधान दोनों प्रदान करता है wgetऔर Privoxy। जबकि wget है यथोचित कॉन्फ़िगर करने के लिए सरल, Privoxyकुछ भी लेकिन उचित है। या सरल है।
ठीक से स्थापित करने, कॉन्फ़िगर करने और उपयोग Privoxyकरने की असंभव तकनीकी बाधा के कारण , हमारे पास अभी तक mpy के समाधान की पुष्टि करने के लिए नहीं है । इसे एक स्केलेबल, मजबूत तरीके से काम करना चाहिए । प्रवेश में आने वाली बाधाओं को देखते हुए, यह समाधान संभवतः बड़े पैमाने पर स्वचालन के लिए उपयुक्त है, औसत वेबमास्टर की तुलना में छोटे से मध्यम स्तर की साइटों को पुनर्प्राप्त करने का प्रयास।
क्या wget+ Privoxyदेखने लायक है? पूर्ण रूप से। लेकिन अधिकांश सुपरसर्स बेहतर सरल, अधिक आसानी से लागू होने वाले समाधानों द्वारा सेवित हो सकते हैं।
नया समाधान: रिक्ट्राक
दर्ज करें httrack, एक कमांड-लाइन उपयोगिता जो wgetकार्यक्षमता के दर्पण के सुपरसेट को कार्यान्वित कर रही है। httrackपैटर्न-आधारित URL बहिष्करण और सरलीकृत साइट पुनर्गठन दोनों का समर्थन करता है । पूर्व में खसखस "समस्या 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 के लिए एक उपनिर्देशिका होनी चाहिए जो उस URL से प्रतिबिंबित हो। इसमें आमतौर पर कम से कम शामिल हैं:
css, सभी सीएसएस स्टाइलशीट से युक्त।
html, जिसमें सभी HTML पृष्ठ प्रतिबिंबित हैं।
js, जिसमें सभी जावास्क्रिप्ट शामिल हैं।
ico, एक दर्पण युक्त favicon युक्त।
चूंकि httrackइस संरचना को प्रतिबिंबित करने के लिए सभी डाउनलोड की गई सामग्री को आंतरिक रूप से फिर से लिखता है, इसलिए आपकी साइट अब बिना किसी संशोधन के ब्राउज़ करने योग्य होनी चाहिए। यदि आपने समय-समय पर उपरोक्त कमांड को रोक दिया है और डाउनलोड करना जारी रखना चाहते हैं, तो --continueविकल्प को उसी कमांड और रिट्रीट में जोड़ें।
बस। कोई बाहरी विरोधाभास, त्रुटि-प्रवण URL पुनर्लेखन, या नियम-आधारित प्रॉक्सी सर्वर की आवश्यकता नहीं है।
आनंद लें, साथी सुपरसर्स।
20110722080716स्नैपशॉट के तहत सभी फाइलें सुलभ नहीं हैं , इसलिए wget का-npविकल्प मदद नहीं करेगा।