Загрузить/экспортировать общедоступную электронную таблицу Google в виде TSV из командной строки?
У меня есть общедоступная (опубликованная) электронная таблица Google, которую я пытаюсь загрузить программно в форме TSV.
В моем браузере с активным логином Google для некоторого фактического ключа $key
, https://spreadsheets.google.com/feeds/download/spreadsheets/Export?key=$key&exportFormat=tsv
работает и создает файл TSV.
В моей оболочке, однако:
-
curl -L "https://spreadsheets.google.com/feeds/download/spreadsheets/Export?key=$key&exportFormat=tsv"
создает кучу javascript.
-
curl -L "https://spreadsheets.google.com/feeds/download/spreadsheets/Export?key=$key&exportFormat=csv"
также создает кучу javascript.
-
curl -L "https://docs.google.com/spreadsheet/pub?key=$key&single=true&gid=0&output=csv"
работает и создает файл CSV.
-
curl -L "https://docs.google.com/spreadsheet/pub?key=$key&single=true&gid=0&output=tsv"
выводит сообщение об ошибке.
(Попытки использовать wget
дали аналогичные результаты.)
Как мне сделать эту работу? Вся документация Google, которую я смог найти до сих пор, ориентирована на гораздо более сложные проблемы, чем простая загрузка и изменение формата, и если решение моей проблемы находится где-то там, я еще не смог ее найти.
Ответы
Ответ 1
Я обнаружил, что это разочарование недокументировано. Я уверен, что он где-то задокументирован... но я его не нашел.
Предполагается, что ваш листок Google публикуется публично. Это неинтересно для многих людей. (Выберите "Файл → Опубликовать в Интернете...)
Когда вы публикуете лист, вам предоставляется URL-адрес, подобный этому:
https://docs.google.com/spreadsheets/d/1XsfK2TN418FuEstNGG2eI9FmEV-4eY-FnndigHWIhk4/pubhtml
Этот URL-адрес хорошо просматривается... но это не загружаемый CSV, который я хотел. Благодаря длительной комбинации поиска и проб и ошибок я придумал следующее:
curl "https://docs.google.com/spreadsheets/d/1XsfK2TN418FuEstNGG2eI9FmEV-4eY-FnndigHWIhk4/export?gid=0&format=csv"
Я считаю, что это очень полезно. Я надеюсь, что кто-то комментирует ссылку на официальные документы, объясняющие это более подробно.
Ответ 2
Я могу загрузить через оболочку таким образом:
в моем случае он работал, как ожидалось.
Плюс я думаю, что он публикует все форматы, поэтому вы можете выбрать, что загрузить, изменить последнюю часть URL-адреса, не публикуя и повторно опубликовать его:
output=tsv
output=csv
Ответ 3
Частные файлы требуют загрузки учетных данных авторизации OAuth. Подробнее об этом процессе читайте в Руководстве Google Диска Скачать файлы.
Ответ 4
Мой ответ о том, как найти ответ.
В браузере Chrome перейдите к документу google.
В правом верхнем углу браузера перейдите к трёх точкам → больше инструментов- > инструментов разработчика
Это вызовет html... debugger.
В верхней части окна отладчика выберите сеть.
Теперь в вашем документе инициируйте загрузку, которую вы пытаетесь автоматизировать.
В отладчике он покажет вам любые сделанные веб-запросы. Первый новый, вероятно, то, что вы хотите.
Вы должны иметь возможность щелкнуть правой кнопкой мыши- > copy- > copy link address
URL содержит идентификатор. Я не знаю, для чего это нужно, но завиток удалось скачать документ без него.
Надеюсь, что это будет полезно.