Запрос Google Sheets на Python

У меня есть таблица Google, которая собирает данные с веб-сайта с помощью функции = IMPORTXML. У меня также есть скрипт Python, который собирает данные из таблицы Google. Все работает, но сейчас я пытаюсь его упростить. Все это началось как ручной процесс в Google Таблицах. Теперь это автоматизировано, но это не очень красиво.

Два конкретных вопроса:

1) Как лучше всего очистить веб-сайт с помощью Python? Я бы хотел, чтобы все это работало в одном скрипте. Может ли Beautiful Soup стать хорошим решением?

2) В настоящее время запрос к API Google закодирован для запуска каждого запроса отдельно (это не вспомогательная функция, но я бы хотел превратить ее в одну). По сути, он копирует сценарий быстрого запуска:

spreadsheetId = 'xxxx'
rangeName = 'xxxx'
result = service.spreadsheets().values().get(spreadsheetId=spreadsheetId,range=rangeName).execute()
values = result.get('values', [])
variable = ''
for row in values:
    variable = '%s' % (row[0])
if variable != storedVariable:
    print ('Condition not met...')
    return;
#Do a thing

В моем коде есть различные версии установки переменной, проверки ее на сохраненное значение и продолжения, если существуют правильные условия. Есть ли более простой способ проанализировать значения, возвращаемые вызовом API, чтобы они были установлены как переменная?


person user2801329    schedule 22.01.2018    source источник


Ответы (1)


  1. BeautifulSoup будет хорошо работать для очистки данных, пока страница полностью статична. Для большинства веб-страниц вам необходимо иметь возможность взаимодействовать со страницей для доступа к нужным данным или перебирать несколько страниц. Селен отлично подходит для таких ситуаций.
  2. У меня нет лучшего решения для этого вопроса. Библиотека google-api-python-client громоздка. Похоже, что раньше gspread был хорошей альтернативой с большим количеством функций, но он не обновлялся почти год и, похоже, отстал от библиотеки Google.
person ajgriese    schedule 09.02.2018