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

Misha

Client
Регистрация
23.10.2016
Сообщения
243
Благодарностей
70
Баллы
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
 
Номер конкурса шаблонов
Одиннадцатый конкурс шаблонов

Вложения

Для запуска проектов требуется программа ZennoPoster или ZennoDroid.
Это основное приложение, предназначенное для выполнения автоматизированных шаблонов действий (ботов).
Подробнее...

Для того чтобы запустить шаблон, откройте нужную программу. Нажмите кнопку «Добавить», и выберите файл проекта, который хотите запустить.
Подробнее о том, где и как выполняется проект.

Последнее редактирование модератором:

che100

Client
Регистрация
18.04.2017
Сообщения
808
Благодарностей
501
Баллы
63
Годнота подъехала. Жаль что гугол вечно чего-то меняет, словно у него электролобзик в попе.
 
  • Спасибо
Реакции: Misha

radv

Client
Регистрация
11.05.2015
Сообщения
3 724
Благодарностей
1 918
Баллы
113
  • Спасибо
Реакции: Misha

spbalexpiter

Client
Регистрация
24.11.2013
Сообщения
357
Благодарностей
56
Баллы
28
в спойлер не спрятали :D
 

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