2012-02-13 18 views
28

मैं एक संपूर्ण कॉर्पोरेट वेबसाइट को स्क्रैप और डाउनलोड करने के लिए एक कार्यक्रम के लिए सिफारिशों की तलाश में हूं।स्क्रैप एक संपूर्ण वेबसाइट

साइट एक सीएमएस द्वारा संचालित है जिसने काम करना बंद कर दिया है और इसे ठीक करना महंगा है और हम वेबसाइट का पुनर्विकास करने में सक्षम हैं।

तो मैं पूरी वेबसाइट को सादे एचटीएमएल/सीएसएस/छवि सामग्री के रूप में प्राप्त करना चाहता हूं और जब तक नई साइट के साथ आने तक आवश्यक हो तो इसके लिए मामूली अपडेट करें।

कोई सिफारिशें?

उत्तर

19

HTTrack पर विचार करें। यह एक निःशुल्क और उपयोग में आसान ऑफ़लाइन ब्राउज़र उपयोगिता है।

यह आपको इंटरनेट से एक स्थानीय निर्देशिका में एक वर्ल्ड वाइड वेबसाइट डाउनलोड करने, सभी निर्देशिकाओं को दोबारा बनाने, HTML, छवियों और सर्वर से अन्य फ़ाइलों को अपने कंप्यूटर पर डाउनलोड करने की अनुमति देता है।

+0

यह मेरे लिए एक कमांड लाइन विकल्प से आसान और आसान है। –

47
wget \ 
    --recursive \ 
    --no-clobber \ 
    --page-requisites \ 
    --html-extension \ 
    --convert-links \ 
    --restrict-file-names=windows \ 
    --domains website.org \ 
    --no-parent \ 
     www.website.com 

इसके बारे में और पढ़ें here

+1

wget को 'कन्वर्ट-लिंक' और 'नो-क्लॉबर' पसंद नहीं है। यह उस मामले में 'नो-क्लॉबर' को अनदेखा कर देगा। – BryanH

+1

यदि आप ऑडियो या वीडियो जैसे HTML5 टैग के साथ साइट को स्क्रैप करना चाहते हैं, तो आपको wget के नवीनतम संस्करण का उपयोग करना होगा। उन लोगों के लिए समर्थन 2012-2013 में कभी-कभी जोड़ा गया था। मैंने अभी हाल ही में अपने गिट रेपो से संकलित किया है और मुझे आवश्यक वेब साइट मिली है, जो वीडियो फ़ाइलों के साथ पूर्ण है। –

+2

क्या '--डोमेन' के समान तर्क होना चाहिए क्योंकि साइट के नाम को स्क्रैप किया जाना चाहिए (इस मामले में 'website.com',' .org' नहीं)? – user151841

0

सबसे अच्छा तरीका है wget साथ यह स्क्रैप करने के रूप में @Abhijeet रस्तोगी के जवाब में सुझाव दिया है। यदि आप परिचित नहीं हैं तो ब्लैकविड्व एक सभ्य स्क्रैपर है। मैंने इसे अतीत में इस्तेमाल किया है। http://www.sbl.net/

2

wget -r --no-parent http://www.website.com

@shadyabhi के जवाब केवल मुझे index.html ऊपर की

28

कोई नहीं मिला मैं (पूरी साइट और सभी परिसंपत्तियों) वास्तव में क्या जरूरत दे दी है। हालांकि यह काम किया।

सबसे पहले, ओएसएक्स पर wget प्राप्त करने के लिए this ट्यूटोरियल का पालन करें।

फिर चलाने इस

wget --recursive --html-extension --page-requisites --convert-links http://website.com 
+2

यदि आप केवल यूआरएल और इसके सबडोमेन से चाहते हैं तो कोई भी माता-पिता जोड़ें – magnudae

+0

सुनिश्चित करें कि आप www शामिल करते हैं। अगर साइट www को मजबूर करती है। अन्यथा यह कुछ भी डाउनलोड नहीं करेगा। –

12

मैं जानता हूँ कि इस सुपर पुरानी है और मैं सिर्फ मेरी 2 सेंट रखना चाहते थे

wget -m -k -K -E -l 7 -t 6 -w 5 http://www.website.com

एक छोटी सी स्पष्टीकरण स्विच में से प्रत्येक के बारे में:।

-m अनिवार्य रूप से, इसका अर्थ है "साइट को दर्पण करें", और यह पृष्ठों कोपर दोबारा पकड़ लेता हैछवियों के रूप में यह साइट के माध्यम से मकड़ियों। यह टाइमस्टैम्प की जांच करता है, इसलिए यदि आप इस स्विच के साथ दूसरी बार wget चलाते हैं, तो यह केवल उन फ़ाइलों/पृष्ठों को अपडेट करेगा जो पिछले समय की तुलना में नए हैं।

-k यह स्थानीय फ़ाइलों को इंगित करने के लिए एचटीएमएल में लिंक संशोधित करेगा। यदि आपकी साइट पर लिंक के रूप में page2.html जैसी चीजों का उपयोग करने की बजाय आप वास्तव में एक पूर्ण http://www.website.com/page2.html का उपयोग कर रहे थे तो आपको शायद इसकी आवश्यकता होगी/चाहें। मैं इसे सुरक्षित पक्ष पर रखने के लिए चालू करता हूं - संभावना है कि कम से कम 1 लिंक अन्यथा समस्या का कारण बन जाएगा।

-K उपरोक्त विकल्प (लोअरकेस के) HTML को संपादित करता है। यदि आप "अनछुए" संस्करण भी चाहते हैं, तो इस स्विच का उपयोग करें और यह बदले गए संस्करण और मूल दोनों को सहेज लेगा। कुछ ख़राब होने पर यह सिर्फ अच्छा अभ्यास है और आप दोनों संस्करणों की तुलना करना चाहते हैं।आप हमेशा उस व्यक्ति को हटा सकते हैं जिसे आप बाद में नहीं चाहते थे।

-E यह "उचित एक्सटेंशन" के साथ HTML & सीएसएस बचाता है। इस के साथ सावधान रहें - यदि आपकी साइट पर प्रत्येक पृष्ठ पर .html एक्सटेंशन नहीं हैं, तो यह इसे जोड़ देगा। हालांकि, अगर आपकी साइट में पहले से ही ".htm" जैसी कुछ फ़ाइल है, तो आप अब ".htm.html" के साथ समाप्त हो जाएंगे।

-l 7 डिफ़ॉल्ट रूप से, हम ऊपर इस्तेमाल किए गए पूरे साइट के माध्यम से रिकर्स/स्पाइडर करेंगे। आमतौर पर यह ठीक है। लेकिन कभी-कभी आपकी साइट में एक अनंत लूप होगा जिसमें केस हमेशा के लिए डाउनलोड होगा। सामान्य website.com/products/jellybeans/sort-by-/name/price/name/price/name/price उदाहरण के बारे में सोचें। यह आजकल कुछ दुर्लभ है - अधिकतर साइटें अच्छी तरह से व्यवहार करती हैं और यह नहीं करतीं, लेकिन सुरक्षित पक्ष पर रहने के लिए, मुख्य पृष्ठ से कहीं भी प्राप्त करने के लिए संभवतः सबसे अधिक क्लिकों को समझें, वेबसाइट पर किसी भी वास्तविक पृष्ठ तक पहुंचने के लिए, पैड यह थोड़ा सा है (अगर आप 7 के मूल्य का उपयोग करते हैं तो यह चूसना होगा और एक घंटे बाद पता चला कि आपकी साइट 8 स्तर गहरी थी!) और उस # का उपयोग करें। बेशक, यदि आप जानते हैं कि आपकी साइट में एक संरचना है जो व्यवहार करेगी, तो इसे छोड़ने में कुछ भी गलत नहीं है और यह जानने का आराम है कि आपकी साइट पर 1 छुपा पृष्ठ 50 स्तरों का गहरा था।

-t 6 यदि किसी निश्चित पृष्ठ या फ़ाइल को एक्सेस/डाउनलोड करने का प्रयास करने में विफल रहता है, तो यह उस फ़ाइल पर छोड़ने से पहले रीट्रीज़ की संख्या सेट करता है और आगे बढ़ता है। आप आमतौर पर को छोड़ना चाहते हैं (इसे 0 पर सेट करें यदि आप इसे हमेशा के लिए प्रयास करना चाहते हैं), लेकिन आप यह भी नहीं छोड़ना चाहते हैं कि साइट केवल दो या दो के लिए जीत गई हो। मुझे उचित होने के लिए 6 मिलते हैं।

-w 5 यह अगली फ़ाइल को पकड़ने से पहले कुछ सेकंड (इस मामले में 5 सेकंड) प्रतीक्षा करने के लिए wget को बताता है। यहां कुछ उपयोग करने के लिए अक्सर महत्वपूर्ण होता है (कम से कम 1 सेकंड)। मुझे समझाने दो। डिफ़ॉल्ट रूप से, wget जितनी जल्दी हो सके पृष्ठों को पकड़ लेगा। यह आसानी से प्रति सेकंड एकाधिक अनुरोध हो सकता है जिसमें सर्वर पर भारी भार डालने की क्षमता है (विशेष रूप से यदि साइट PHP में लिखी गई है, तो MySQL प्रत्येक अनुरोध पर पहुंचता है, और कैश का उपयोग नहीं करता है)। यदि वेबसाइट साझा होस्टिंग पर है, तो वह लोड किसी को अपने मेजबान से लात मार सकता है। एक वीपीएस पर भी यह कुछ घुटनों को अपने घुटनों पर ला सकता है। और यहां तक ​​कि यदि साइट स्वयं ही जीवित रहती है, तो कुछ सेकंड के भीतर अनुरोधों की पागल संख्या के साथ बमबारी होने पर एक डॉस हमले की तरह लग सकता है जो आपके आईपी को ऑटो-अवरुद्ध कर सकता है। यदि आप निश्चित रूप से नहीं जानते कि साइट यातायात के भारी प्रवाह को संभाल सकती है, तो -w # switch.5 का उपयोग आमतौर पर काफी सुरक्षित है। यहां तक ​​कि 1 शायद ज्यादातर समय ठीक है। लेकिन कुछ का उपयोग करें।

+0

सभी स्पष्टीकरणों के लिए धन्यवाद, महान जवाब! – mdomino

संबंधित मुद्दे