केवल HTML फ़ाइलों को डाउनलोड करने के लिए wget का उपयोग करके क्रॉल कैसे करें (चित्र, सीएसएस, js को अनदेखा करें)


14

अनिवार्य रूप से, मैं पूरी साइट को Wget के साथ क्रॉल करना चाहता हूं, लेकिन मुझे इसकी आवश्यकता अन्य परिसंपत्तियों (जैसे इमेजरी, सीएसएस, जेएस, आदि) को डाउनलोड करने में है। मुझे केवल HTML फाइलें चाहिए।

Google खोज पूरी तरह से बेकार हैं।

यहाँ एक कमांड मैंने कोशिश की है:

wget --limit-rate=200k --no-clobber --convert-links --random-wait -r -E -e robots=off -U "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.102 Safari/537.36" -A html --domain=www.example.com http://www.example.com

हमारी साइट हाइब्रिड फ्लैट-पीएचपी और सीएमएस है। तो, एचटीएमएल "फ़ाइलें" हो सकता है /path/to/page, /path/to/page/, /path/to/page.php, या /path/to/page.html

मैंने भी शामिल किया है, -R js,cssलेकिन यह अभी भी फ़ाइलों को डाउनलोड करता है, उन्हें अस्वीकार करता है (बैंडविड्थ, सीपीयू और सर्वर लोड के बेकार अपशिष्ट!)।


2
अब तक आपने क्या आदेश दिया है? यदि फ़ाइलों का नामकरण सुसंगत है, तो आपको -R ध्वज का उपयोग करने में सक्षम होना चाहिए। वैकल्पिक रूप से, आप --ignore- टैग ध्वज का उपयोग कर सकते हैं और स्क्रिप्ट और img टैग को अनदेखा कर सकते हैं।
हर्नी


मैंने --accept = html का उपयोग करने की कोशिश की है, लेकिन यह CSS फाइलों को डाउनलोड करता है जो उन्हें हटा देता है। मैं उन्हें कभी भी डाउनलोड होने से रोकना चाहता हूं। एक हेडर अनुरोध ठीक है, हालांकि - जैसे मैं Length: 558 [text/css]उन फाइलों पर ध्यान देता हूं जो मैं नहीं चाहता। अगर हेडर वापस नहीं आता है text/html, तो मैं अनुरोध रोक सकता हूं , मैं समाप्त हो जाऊंगा।
नाथन जेबी

जवाबों:


13

@ ernie की टिप्पणी --ignore-tagsने मुझे सही राह पर ले जाने के लिए प्रेरित किया! जब मैं ऊपर देखा --ignore-tagsमें man, मैंने देखा है --follow-tags

सेटिंग --follow-tags=aमुझे छोड़ करने की अनुमति दी img, link, script, आदि

यह संभवतः कुछ लोगों के लिए एक ही उत्तर की तलाश में सीमित है, लेकिन यह वास्तव में मेरे मामले में अच्छा काम करता है (यदि मैं कुछ पृष्ठों को याद करता हूं तो यह ठीक है)।

यदि किसी को सभी टैग्स को स्कैन करने की अनुमति देने का तरीका मिल जाता है, लेकिन wgetडाउनलोड होने के बाद ही वे फ़ाइलों को अस्वीकार करने से रोकते हैं (उन्हें डाउनलोड करने से पहले फ़ाइल नाम या हेडर के आधार पर अस्वीकार करना चाहिए), मैं बहुत खुशी से उनके उत्तर को स्वीकार करूंगा!


5

विकल्पों को जोड़ने के बारे में क्या:

--reject '*.js,*.css,*.ico,*.txt,*.gif,*.jpg,*.jpeg,*.png,*.mp3,*.pdf,*.tgz,*.flv,*.avi,*.mpeg,*.iso'
--ignore-tags=img,link,script 
--header="Accept: text/html"
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.