Wget का उपयोग करके यूनीकोड ​​के साथ लिंक कैसे डाउनलोड करें?


14

कभी-कभी किसी लिंक में यूनिकोड वर्ण होते हैं, जैसे कि http://www.example.com/файл.zip

यदि आप अपने ब्राउज़र को इंगित करते हैं, तो यह आपको फ़ाइल को файл.zip के रूप में डाउनलोड करने के लिए ठीक से संकेत देगा। लेकिन अगर आप इसे करने की कोशिश करते हैं wget, तो फ़ाइल एक मिश्रण के साथ आती है?, प्रतिशत एन्कोडिंग (% D0% BB) और (invalid encoding)फ़ाइल नाम के बाद स्ट्रिंग।

मैं किस पैरामीटर को wget, या किसी अन्य कमांड लाइन ट्रिक्स में जोड़ सकता हूं, ताकि यह क्रोम और फ़ायरफ़ॉक्स के रूप में व्यवहार करता है और फ़ाइल को दिए गए लिंक में बताए अनुसार सहेजता है - इस मामले में, जैसे कि файл.zip?

समाधान को स्पष्ट रूप से कमांड में लिखने के बिना काम करना चाहिए, इसलिए एक स्पष्ट wget -O файл.zip http://www.example.com/файл.zipसमाधान एक अच्छा समाधान नहीं है।

मुझे एहसास है कि जैसे ही आप wget http://www.example.com/файл.zipइसे चलाते हैं http://www.example.com/%D1%84%D0%B0%B0%B0%B9%D0%BB.zip को पुनः प्राप्त करने की कोशिश करता है , यानी यह लिंक को प्रतिशत में बदल देता है एन्कोडिंग, जो कारण है कि यह बचाता है यह फ़ाइल नाम "ठीक से" प्रस्तुत नहीं करता है हो सकता है।

मैंने यहाँ कुछ संबंधित प्रश्न पोस्ट किया है , जिसका उत्तर इस मदद के लिए हो भी सकता है और नहीं भी।

जवाबों:


3

आप इसके बजाय कर्ल का उपयोग कर सकते हैं

curl -O http://www.example.com/файл.zip

यह файл.zip को बचाएगा।


23

Wget के लिए, आप उपयोग कर सकते हैं:

wget http://www.example.com/файл.zip --restrict-file-names=nocontrol

यदि आपका सिस्टम UTF-8 या अन्य एन्कोडिंग को ठीक से संभाल सकता है।

अंत में, यदि आपके पास अभी भी आपकी डाउनलोड की गई फ़ाइल में वे% प्रतीक बचे हैं, तो आप पायथन मॉड्यूल का उपयोग कर सकते हैं, urllib.unquote(filename)जो उनके एकल-वर्ण समकक्ष द्वारा% xx के भागने की जगह लेगा।


3
इसे स्वीकृत उत्तर के रूप में चिह्नित किया जाना चाहिए, अगर यह और सब कुछ लोगों के संयोजन wget के साथ करते हैं (जैसे पुनरावर्ती डाउनलोड करना) कर्ल ओपी में किया जा सकता है और शायद हर किसी ने इसे पहले से ही किया होगा।
बेहरोज

उपयोगी हो सकता है --restrict-file-names=nocontrol अगर फ़ाइल लिंक अंतिम नहीं है।
ipeacocks

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.