Как я могу загрузить неопубликованный c сайт Google? - PullRequest
0 голосов
/ 29 мая 2020

Я хочу загрузить HTML всех страниц сайта Google, к которым можно получить доступ только после входа в Google. Google не предоставляет API для новых Сайтов Google ( источник ). Чтобы усложнить ситуацию, мой вход в Google требует 2SV .

Я пробовал аутентифицироваться в Firefox, сохраняя свои файлы cookie через Firefox extension cookies.txt и затем с помощью wget:

wget \
    --load-cookies=cookies.txt \
    --no-host-directories \
    --no-directories \
    --recursive \
    --accept '*.html' \
    https://sites.google.com/a/example.com/the-website-i-need/

Результатом была просто страница входа в Google.

Я также пробовал изнутри Firefox через плагин cliget , который может генерировать команда wget, эквивалентная тому, что Firefox делает для загрузок. Моя идея заключалась в том, чтобы добавить рекурсивные параметры к сгенерированной команде. Однако плагин только что сообщил «Нет загрузок для этого сеанса» даже после сохранения страницы root сайта Google в виде файла. html. Затем я инициировал загрузку файла PDF с сайта Google, что вызвало запуск плагина cliget. Однако результирующая команда wget привела к 302 Moved Temporarily, которому wget точно следовала, но эти процессы повторялись, пока, наконец, wget не отказался от 20 redirections exceeded.

Можно ли это сделать с помощью OAuth или другого метода аутентификация?

Связано: Доступ к странице Сайтов Google, отличной от Publi c, с использованием curl + Bearer Token

1 Ответ

0 голосов
/ 10 июня 2020

Я наконец нашел способ сделать это. Google Takeout позволяет (теоретически) загружать все ваши данные Google, включая сайты Google.

Есть некоторые ограничения:.

  • По неизвестным причинам это не работает для классных c Сайтов Google. Этих данных просто нет в загружаемых файлах, которые предоставляет Google, хотя Google утверждает, что они поддерживаются. Это может быть ошибка. Он хорошо работает на новых сайтах Google.
  • Насколько мне известно, автоматического способа сделать это не существует. Вам нужно будет пройти через шаги Google Takeout. Однако для одноразового экспорта это не должно быть проблемой.
  • Если вы используете Google G Suite, ваши администраторы могли отключить Google Takeout. Попробуйте, но если он говорит: «У вас не включены службы, для которых можно экспортировать данные», вам нужно будет обратиться к администраторам G Suite.

Краткая версия :

  • на Google Диске переместите свой сайт Google в папку верхнего уровня
  • go в https://takeout.google.com/
  • ниже Google Диск, выберите папку, используемую выше
  • экспорт

Подробная версия :

...