फोर्स वास्तविक फ़ाइलनाम का उपयोग करना भूल जाता है


50

wgetGoogle डॉक्स से कुछ फ़ाइलों को डाउनलोड करने के लिए स्क्रिप्ट में उपयोग करते समय , फ़ाइल का नाम संरक्षित नहीं है। उदाहरण के लिए:

wget 'http://spreadsheets.google.com/pub?key=pyj6tScZqmEfbZyl0qjbiRQ&output=xls' 

फ़ाइल को pub?key=pyj6tScZqmEfbZyl0qjbiRQइसके स्थान पर सहेजता है indicatorhivestimatedprevalence15-49.xls, जो मुझे ब्राउज़र में लिंक पर क्लिक करने पर मिलता है। क्या इस "ब्राउज़र-जैसे" व्यवहार को लागू करने का कोई तरीका है wget?

जवाबों:


90
wget --content-disposition 'http://spreadsheets.google.com/pub?key=pyj6tScZqmEfbZyl0qjbiRQ&output=xls'

तुम्हारे लिए चाल चलेगा।

यह अभी भी पूरी तरह से लागू नहीं हुआ है और कभी-कभी थोड़ा बग को बाहर करने लगता है, इसलिए इसका डिफ़ॉल्ट विकल्प नहीं है wget, इसे अपने जोखिम पर उपयोग करें।


1
मुझे पता है...! अच्छा अह? ;)
ब्रूनो परेरा

मैं वास्तव में बहुत अधिक वेब प्रोग्रामर नहीं हूं, इसलिए मैंने "कंटेंट डिस्पोजल" वाक्यांश की तलाश के बारे में कभी नहीं सोचा होगा । आपने मुझे HTTP हेडर को मैन्युअल रूप से देखने, सामग्री-वितरण हेडर की खोज करने और इससे निपटने के लिए बचाया।
चिन्मय कांची

वाह + अद्भुत। THX u roc अच्छा विचार है।
कंगारू

@BrunoPereira, मैं भी Google स्प्रेडशीट फ़ाइल डाउनलोड करने का प्रयास कर रहा हूं। लेकिन मुझे फ़ाइल के लिए लिंक नहीं मिला। क्या आप यह कह सकते हैं कि Google स्प्रेडशीट फ़ाइल के लिए लिंक कैसे प्राप्त करें ताकि मैं चिन्मय कांची की तरह ही wget का उपयोग कर सकूं। अग्रिम में धन्यवाद।
user22180

@ChinmayKanchi मैं खुद को पिछले 15 वर्षों में एक वेब प्रोग्रामर कहता हूं, लेकिन जब यह बात आती है तो मैं हमेशा कोशिश करता हूं और कोड में अधिक सार्थक नाम का उपयोग करता हूं।
6

3

आप मूल फ़ाइल नाम को डाउनलोड करने और रखने के लिए कर्ल का उपयोग करने का प्रयास कर सकते हैं :

curl -OJL ${your_url}
  • दूरस्थ नाम के लिए -O
  • -J रिमोट-हेडर-नाम के लिए
  • -एल लोकेशन के लिए

देख कर्ल आदेश पंक्ति विकल्प


0

Google डॉक्स लिंक वास्तव में चलाने के लिए सर्वर पर एक स्क्रिप्ट बता रहा है, जिसे आप चाहते हैं उस फ़ाइल में पार्स करना। मेरे ज्ञान का सबसे अच्छा करने के लिए फ़ाइल, els रूप में सर्वर पर कभी मौजूद नहीं है, लेकिन जब आप इसे मांगते हैं तो रनटाइम पर उत्पन्न होता है। इस प्रकार, पाने के लिए कुछ भी नहीं है।

फ़ाइल डाउनलोड करने के लिए, आपको Google API http://code.google.com/apis/documents/docs/3.0/developers_guide_protocol.html#DownloadingDocs/ का उपयोग करना होगा ।


हां, सर्वर एक स्क्रिप्ट को चलाने के लिए कह रहा है, जो .xlsफ़ाइल को मक्खी पर बनाता है । हालाँकि, एक पूर्ण विकसित ब्राउज़र को इससे कोई समस्या नहीं है। तो यह डॉक्स एपीआई के बिना स्पष्ट रूप से संभव है।
चिन्मय कांची

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