Подтвердить что ты не робот

Загрузить/экспортировать общедоступную электронную таблицу 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, которую я смог найти до сих пор, ориентирована на гораздо более сложные проблемы, чем простая загрузка и изменение формата, и если решение моей проблемы находится где-то там, я еще не смог ее найти.

4b9b3361

Ответ 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

Я могу загрузить через оболочку таким образом:

  • Файл = > Опубликовать в Интернете
  • Выберите лист и формат, который вы хотите загрузить.
  • Нажмите "Опубликовать"
  • Скопируйте ссылку
  • а затем используйте его:

    wget -O ./filename.csv "LINK"
    

    или

    curl -L "LINK" > ./filename.csv
    

в моем случае он работал, как ожидалось.

Плюс я думаю, что он публикует все форматы, поэтому вы можете выбрать, что загрузить, изменить последнюю часть URL-адреса, не публикуя и повторно опубликовать его:

output=tsv
output=csv

Ответ 3

Частные файлы требуют загрузки учетных данных авторизации OAuth. Подробнее об этом процессе читайте в Руководстве Google Диска Скачать файлы.

Ответ 4

Мой ответ о том, как найти ответ.

В браузере Chrome перейдите к документу google.

В правом верхнем углу браузера перейдите к трёх точкам → больше инструментов- > инструментов разработчика

Это вызовет html... debugger.

В верхней части окна отладчика выберите сеть.

Теперь в вашем документе инициируйте загрузку, которую вы пытаетесь автоматизировать.

В отладчике он покажет вам любые сделанные веб-запросы. Первый новый, вероятно, то, что вы хотите.

Вы должны иметь возможность щелкнуть правой кнопкой мыши- > copy- > copy link address

URL содержит идентификатор. Я не знаю, для чего это нужно, но завиток удалось скачать документ без него.

Надеюсь, что это будет полезно.