Парсинг сайта с выгрузкой в Google Sheets с помощью API и Service Account | Работа с таблицей в общем коде

  • Автор темы Автор темы Misha
  • Дата начала Дата начала

Misha

Client
Регистрация
23.10.2016
Сообщения
302
Реакции
79
Баллы
28
Шаблон парсинга сайта с выгрузкой данных в Google Sheets с помощью API и Service Account

Иногда встречаются задачи, когда нам нужно иметь больше гибкости и возможностей чем предоставляют стандартные инструменты. В таком случае, увы, приходится прибегать к написанию *Своего кода*. Но для того, чтобы Вы не начинали с чистого листа, представляю вам шаблон в котором реализованы следующие вещи для работы с Google Sheets:

1) Создание новой таблицы;
2) Применение стилей к ячейкам таблицы;
2) Загрузка данных из таблицы;
3) Выгрузка данных в таблицу.

Основной для выполнения операций с Google Sheets в этом шаблоне есть библиотека Google.Apis.Sheets.v4.

Что конкретно делает этот шаблон?

Программа в шаблоне заходит на сайт https://ixbt.games/news, проходится по первым N страницам, и собирает следующую информацию про каждый пост:

- Дата публикации;
- Заголовок поста;
- Ссылка на пост.

После того как информация про посты собрана, она обрабатывается, разбивается по дням, когда были совершены публикации, и загружается в Google Sheets. Для каждого дня, когда были совершены публикации, автоматически создается свой лист в таблице.

Результат работы шаблона можно увидеть на рисунке, или же по ссылке тут https://docs.google.com/spreadsheets/d/1yJDqZeLWdjbFDXm0i-f9nCG-23cy0zheqGFlXuVwNXA/edit?usp=sharing
Screenshot_31.png


Настройка шаблона:

Для настройки шаблона нам нужно указать гугл таблицу в которую будет производится запись. Кроме этого, нужно указать путь к Json файлу про Service Account который будет использоваться для отправки запросов по API (инструкция где взять такой файл будет дальше). Чтобы это сделать нужно нажать на вкладку Директивы using и общий код. И заменить значения на 43 и 45 строке кода. К статье будет прикреплен Json файл который вы можете использовать тестирования шаблона.

Инструкция как вы можете создать свой Service Account и получить нужный Json файл: (спрятать в спойлер)

1) Зайти на сайт Google Cloud https://console.cloud.google.com/

2) После авторизации, в левом верхнем углу нажать кнопку *Select a project* и в открывшимся меню создать новый проект.

3) Переходим по адресу https://console.developers.google.com/apis/library/sheets.googleapis.com и активируем Google Sheets API для созданного проекта.

4) Далее создаем сервисный аккаунт, для этого переходим по этой ссылке https://console.cloud.google.com/iam-admin/serviceaccounts/create, заполняем поля своими значениями, и жмем кнопку Create And Continue.

111683


5) Роль указываем Owner (или другую на ваше усмотрение) и жмем Continue. После жмем кнопку Done.

111685


6) На следующей вкладке кликаем на имя созданного сервисного аккаунта.

111686


7) Далее выбираем вкладку Keys, там жмем кнопку Add Key. В меню выбираем пункт Json и жмем Create. После этого ключ будет создан, а Json файл автоматически скачан на ваш компьютер.

111687



Решение возможных проблем с библиотеками (спрятать в спойлер)

Следует убедиться, что у вас удачно подключились библиотеки нужные для работы программного кода. Для этого нужно открыть окно Ссылки из GAC и посмотреть, что ваш список библиотек такой же как на этом рисунке.

Если какой-то из библиотеки нет в вашем списке, их нужно добавить вручную. В этом шаблоне используются библиотеки, которые поставляются вместе с ZennoPoster, и они должны находится в папке с программой. Например, у вас нет библиотеки с именем Google.Apis.Sheets.v4, тогда вам нужно указать путь к файлу: C:\Program Files\ZennoLab\RU\ZennoPoster V7\7.7.5.0\Progs\Google.Apis.Sheets.v4.dll
 
Номер конкурса шаблонов
  1. Одиннадцатый конкурс шаблонов

Вложения

Последнее редактирование модератором:
Годнота подъехала. Жаль что гугол вечно чего-то меняет, словно у него электролобзик в попе.
 
  • Спасибо
Реакции: Misha
  • Спасибо
Реакции: Misha
в спойлер не спрятали :D
 
Мало ли кому пригодится - версия для 7.7.4.0
 

Вложения

  • Спасибо
Реакции: XAPOHbI4 и Таксист

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)