У меня есть электронная таблица Google, которая не была опубликована, но доступна только для тех, у кого есть ссылка на доступ. Хотя я могу получить доступ к данным в формате CSV из своего браузера, даже если я не зарегистрирован в своей учетной записи Google (то есть анонимный доступ разрешен), я не могу загрузить данные из командной строки с помощью wget, для instante, Я нашел несколько веб-страниц с некоторыми инструкциями по созданию URL-адреса загрузки, но до сих пор я не имел успеха. Есть ли простой и понятный способ сделать это, или мне нужно будет использовать некоторую библиотеку данных Google для доступа к этим данным?
Загрузите неопубликованные электронные таблицы Google в формате CSV
Ответ 1
Теперь я могу ответить на вопросы, поэтому я оставлю его ответом навсегда (вставка из моего предыдущего комментария).
Моя проблема заключалась в том, что я не хранил cookie правильно. В то время я использовал программу Python для ее загрузки. Это фиксировало проблему, о которой я сообщал:
# Cookie management
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(CookieJar()))
csv_data = csv.reader(opener.open(url))
Ответ 2
Возможно, я неправильно понимаю, что вы пытаетесь сделать, но я нашел решение в этой статье, которое отлично подходит для меня.
В статье автор создает ссылку для загрузки таблицы в виде файла XLS (используя "& output = xls" ), но я попытался "& output = csv" и успешно загрузил правильный 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
Итак, вы идете...
Ответ 3
Я могу получить URL-адрес wget
из общедоступных URL-адресов электронных таблиц, которые выглядят следующим образом:
https://docs.google.com/spreadsheets/d/LONG_ID_STRING/edit?usp=sharing
изменив их так:
https://docs.google.com/spreadsheets/d/LONG_ID_STRING/export?format=csv
чтобы моя команда wget выглядела так:
$ wget "https://docs.google.com/spreadsheets/d/LONG_ID_STRING/export?format=csv"
Убедитесь, что вы сначала делитесь электронной таблицей с синей кнопкой "Поделиться" в правом верхнем углу, а затем "Получите доступную ссылку".
Ответ 4
Чтобы получить доступ к другим вкладкам, вам нужно щелкнуть и получить подсказку этой вкладки, чтобы:
становится:
Ответ 5
Разработал эту проблему и попробовал несколько решений. Никто не работал отлично, поэтому я написал этот завиток, который, похоже, выполняет эту работу. Вы должны поделиться своей электронной таблицей Google с любым, у кого есть ссылка для ее работы.
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
the -L
- вот трюк, в котором google часто перемещает csv, но отправит вам ссылку перенаправления. -L
сообщает curl
следовать переадресации, пока не приземлится на файл.
вы можете найти id
своей таблицы, открыв ее на диске Google и посмотрев URL-адрес
https://docs.google.com/spreadsheets/d/[idwillbehere]/edit#gid=0