2012-05-24 20 views
16

के रूप में मैं एक Google स्प्रेडशीट है कि सार्वजनिक नहीं किया गया है, लेकिन अभी किसी को भी पहुँच लिंक है कि करने के लिए उपलब्ध। हालांकि मैं अपने ब्राउज़र से सीएसवी प्रारूप में डेटा तक पहुंच सकता हूं, भले ही मैं अपने Google खाते में लॉग इन नहीं हूं (यानी, अज्ञात पहुंच की अनुमति है), मैं किसी भी तरह से wget का उपयोग करके कमांड लाइन से डेटा डाउनलोड नहीं कर सकता, इंस्टेंट के लिए । मुझे डाउनलोड यूआरएल बनाने के लिए कुछ निर्देशों के साथ कई वेब पेज मिले हैं, लेकिन अब तक मुझे कोई सफलता नहीं मिली है। क्या ऐसा करने का एक आसान, सीधा तरीका है या क्या मुझे उस डेटा तक पहुंचने के लिए कुछ Google डेटा लाइब्रेरी का उपयोग करना होगा?डाउनलोड अप्रकाशित Google स्प्रेडशीट सीएसवी

उत्तर

0

अब मैं सवालों का जवाब कर सकते हैं, तो मैं यह अच्छा (मेरी पिछली टिप्पणी से चिपकाने) के लिए दिए छोड़ देंगे।

मेरे समस्या यह है कि मैं कुकी सही ढंग से भंडारण नहीं किया गया था। उस समय, मैं इसे डाउनलोड करने का प्रयास करने के लिए एक पायथन प्रोग्राम का उपयोग कर रहा था।

# Cookie management 
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(CookieJar())) 
csv_data = csv.reader(opener.open(url)) 
22

शायद मैं सही ढंग से नहीं समझ रहा हूँ तुम क्या करने की कोशिश कर रहे हैं क्या है, लेकिन मैं एक समाधान in this article कि मेरे लिए बस ठीक काम करता है पाया।

लेख में, लेखक एक XLS फ़ाइल के रूप स्प्रेडशीट के लिए एक डाउनलोड लिंक (का उपयोग करते हुए "& उत्पादन = xls") बनाता है, लेकिन मैंने कोशिश की "& उत्पादन = सीएसवी" और सफलतापूर्वक एक सही CSV फ़ाइल डाउनलोड की।

यहाँ मेरी "डाउनलोड टेस्ट स्प्रैडशीट", अभी जिस तरह लेख के लेखक का सुझाव दिया निर्माण करने के लिए डाउनलोड लिंक है, लेकिन "csv" "xls" के लिए प्रतिस्थापित साथ:

https://docs.google.com/spreadsheet/ccc?key=0At2sqNEgxTf3dEt5SXBTemZZM1gzQy1vLVFNRnludHc&output=csv

लिंक अनाम है (यानी, "कोई भी जिसके पास लिंक है"), और मैंने इसे अपने Google खाते में लॉग इन किए बिना डाउनलोड किया। मैं स्वीकार करूंगा कि मैंने ऐसा करने के लिए wget का उपयोग नहीं किया है (मैंने अभी एक ब्राउज़र का उपयोग किया - मुझे wget इंस्टॉल नहीं किया गया था), लेकिन मैं इस कारण के बारे में नहीं सोच सकता कि wget भी काम नहीं करेगा।

वास्तव में, मैं सिर्फ wget की एक प्रति को पकड़ा और इसे करने की कोशिश, और इसे सही ढंग से भी फ़ाइल डाउनलोड करता है:

% wget --no-check-certificate --output-document=test.csv 'https://docs.google.com/spreadsheet/ccc?key=0At2sqNEgxTf3dEt5SXBTemZZM1gzQy1vLVFNRnludHc&output=csv' 

< bla bla bla, reams of output from wget > 

% cat test.csv 
Foo,Bar,Baz 
1,2,3 
4,5,6 
तो वहाँ फिर जाना

...


2018 के लिए अपडेट करते

जैसा कि @AndyMortimer द्वारा टिप्पणी की गई है, नया डाउनलोड यूआरएल
है   https://docs.google.com/spreadsheets/d/<KEY>/export?gid=<GID>&format=csv
जहां <KEY> और <GID> अपने नेविगेशन के URL से प्राप्त किया जा सकता है,
  https://docs.google.com/spreadsheets/d/<KEY>/edit#gid=<GID>

पुनश्च: स्प्रेडशीट कई कार्यपुस्तिका हो सकता है, GID वांछित कार्यपुस्तिका आईडी है। एक-वर्कबुक-स्प्रेडशीट में आमतौर पर gid=0 होता है, लेकिन यदि आप अधिक जोड़ते हैं तो उनके पास यादृच्छिक संख्याएं होंगी (जीआईडी ​​ टैब-ऑर्डर बदलना भी शुरू किया गया है)।

तो, wget और एक ही स्प्रेडशीट का उपयोग कर,

wget --no-check-certificate -O test.csv \ 
    'https://docs.google.com/spreadsheets/d/0At2sqNEgxTf3dEt5SXBTemZZM1gzQy1vLVFNRnludHc/export?gid=0&format=csv' 
+0

और "और आउटपुट = txt", और इन दोनों परीक्षणों ने भी सही तरीके से काम किया। ("Txt" प्रारूप स्प्रेडशीट को एक टैब-सीमांकित फ़ाइल के रूप में डाउनलोड करने का कारण बनता है, जो कुछ ऐसा नहीं था जिसे मैं इस बारे में बेवकूफ बनाना शुरू नहीं कर पाया था। इसलिए धन्यवाद! मैंने कुछ नई चीजें सीखी यह प्रक्रिया।) – Hephaestus

+0

अंत में, किसी भी कारण से मैं अभी तक समझ में नहीं आया, मैं फ़ाइल डाउनलोड करने में सक्षम नहीं था। मैं इसे सार्वजनिक बनाने के लिए मालिक से बात कर सकता था, इसलिए यह मेरे लिए समस्या का अंत था। वैसे भी आपके उत्तरों के लिए धन्यवाद। –

+0

निश्चित रूप से, कोई चिंता नहीं। जब मुझे आपका प्रश्न मिला तो मुझे वास्तव में कोई अनुभव नहीं था - मैं उस समय कुछ ऐसा करने का तरीका जानने का प्रयास कर रहा था। इसलिए यह समझने के लिए मेरे लिए एक अच्छा अभ्यास था कि इसे कैसे किया जाए, और उत्तर देने का मेरा कारण यह था कि मैंने जो खोजा था उसे दस्तावेज करना था। अच्छा है कि आप इस तरह के एक प्रभावी वैकल्पिक समाधान खोजने में सक्षम थे। :-) – Hephaestus

13

मैं सार्वजनिक स्प्रेडशीट URL हैं, जो इस तरह दिखेगा से एक wget सुलभ URL प्राप्त करने में सक्षम हूँ:

https://docs.google.com/spreadsheets/d/LONG_ID_STRING/edit?usp=sharing 

को उसमें बदलाव इस तरह बनाकर यह समस्या मैं रिपोर्टिंग कर रहा था तय:

$ wget "https://docs.google.com/spreadsheets/d/LONG_ID_STRING/export?format=csv" 
:

https://docs.google.com/spreadsheets/d/LONG_ID_STRING/export?format=csv 

ताकि मेरे wget कमांड कैसा लगेगा

सुनिश्चित करें कि आप पहले दाईं ओर नीले "साझा करें" बटन के साथ स्प्रेडशीट साझा करते हैं, फिर "Sharable Link प्राप्त करें"।

+0

wget उपयोग के साथ फ़ाइल नाम बदलने के लिए: wget -O फ़ाइल यूआरएल – schurpf

+1

मैं जोड़ना चाहता हूं कि दूसरा LONG_ID_STRING कोई फर्क नहीं पड़ता। निम्न यूआरएल ठीक काम करता है: 'https: //docs.google.com/spreadsheets/d/LONG_ID_STRING/export? Format = csv' –

+0

यह समाधान मेरे लिए काम करता है। @ अर्जुन गुहा सही है। सेकंड 'LONG_ID_STRING' आवश्यक नहीं है। –

0

तो अन्य टैब आप क्लिक करें और उस टैब के gid प्राप्त करने की आवश्यकता का उपयोग करने के लिए,:

https://docs.google.com/spreadsheets/d/1GxmL3bbejjGx-Ji7kzsnZLzkSaMrfX5WwgRAvvqfqpw/pubhtml?widget=true&amp%3Bheaders=false#gid=2120833204

बन जाता है:

https://docs.google.com/spreadsheets/d/1GxmL3bbejjGx-Ji7kzsnZLzkSaMrfX5WwgRAvvqfqpw/export?format=csv&id=1GxmL3bbejjGx-Ji7kzsnZLzkSaMrfX5WwgRAvvqfqpw&gid=2120833204

-1

इस समस्या में पड़ गए और कुछ करने की कोशिश की समाधान के। कोई भी पूरी तरह से काम नहीं कर रहा था इसलिए मैंने यह कर्ल लिखा जो नौकरी करने लगता है। यह

curl -o /path/to/file/you/want/csv/to/go.csv 'https://docs.google.com/spreadsheet/ccc?key=[the-id-of-your-spreadsheet]&output=csv' -L

-L काम करने के लिए आप किसी भी लिंक है के साथ अपने Google स्प्रैडशीट साझा करने की आवश्यकता चाल यहाँ है गूगल अक्सर सीएसवी चारों ओर घूमती है, लेकिन आप एक रीडायरेक्ट लिंक भेज देंगे है। -L रीडायरेक्ट का पालन करने के लिए curl को फ़ाइल पर उतरने तक बताता है।

आप गूगल ड्राइव में खोलने और यूआरएल को देखकर अपनी स्प्रैडशीट के id पा सकते हैं

https://docs.google.com/spreadsheets/d/[idwillbehere]/edit#gid=0

बस जिज्ञासा मैं दोनों "और उत्पादन = xls" का उपयोग कर wget के साथ फ़ाइल को लाने की कोशिश की से बाहर
+0

कृपया आपको यह दिखाना होगा कि '_BIG_BASE64_' और' _ID_' को 'https: // docs.google.com/spreadsheets/d/_BIG_BASE64_/संपादित करें # gid = _ID_' को अपने 'कर्ल' में कैसे मानचित्रित करना है। स्प्रेडशीट्स (बहुवचन) पर कोई 'सीसीसी' नहीं है और कोई 'कुंजी' तर्क नहीं है। –

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