Мастер подключения к веб-данным

Мастер подключения к веб-данным

Надстройка SaveToDB позволяет получать данные из служб веб-данных и сохранять изменения данных обратно с помощью REST API, включая OData.

Также надстройка SaveToDB позволяет извлекать данные с веб-страниц HTML, XML, JSON и CSV. Далее можно сохранять загруженные данные слиянием в базу данных.

Надстройка SaveToDB поддерживает следующие методы авторизации: Windows, Basic, Forms, OAuth 1.0 и OAuth 2.0.

Ниже приведен пример основного диалогового окна мастера:

Мастер подключения к веб-данным - пример основного диалогового окна

Элементы управления

URL
Используйте это поле для ввода URL-адреса.
Как правило, URL-адрес можно вставить из браузера.
Надстройка SaveToDB также позволяет настроить URL. См. ниже.
При изменении URL-адреса надстройка пытается обнаружить остальные требуемые параметры в фоновом режиме.
Service URL
Используйте это поле для ввода корневого адреса веб-сайта или службы.
Обычно, это адрес для которого уже можно получать данные и на котором начинается авторизация.
Связано это с тем, что на одном домене может быть несколько сервисов, и для них могут требоваться разные методы авторизации.
Адрес однозначно определяется только для веб-сервисов OData, которые возвращают сервисный документ и метаданные.
Но, в большинстве случаев надстройка определяет корневой адрес автоматически для всех веб-ресурсов.
Авторизация
Используйте это поле для выбора метода авторизации или настроенного провайдера.
Надстройка SaveToDB в большинстве случаев определяет используемый метод или провайдер автоматически.
Кнопка ...
Используйте эту кнопку, чтобы открыть диалоговое окно для настройки OAuth1, OAuth2 или настраиваемых параметров авторизации, в зависимости от выбранного метода авторизации.
Сохранить в кэш
Отметьте это поле, чтобы сохранить параметры авторизации в зашифрованном файле кэша.
Это полезная возможность для совместного использования параметров авторизации в нескольких книгах Excel. В противном случае надстройка сохраняет параметры только в активной книге.
Accept
Используйте это необязательное поле для установки заголовка Accept.
Попробуйте установить значение поля вручную, если веб-сервер возвращает ошибку при запросе с заголовком по умолчанию.
Referrer
Используйте это необязательное поле для установки заголовка Referrer.
Попробуйте установить значение как URL-адрес страницы веб-сайта, если веб-сервер блокирует запрос, как например MSN Money.
UserAgent
Используйте это необязательное поле для установки заголовка UserAgent.
Параметры
Используйте это дополнительное поле для установки параметров анализатора.
Настроить REST
Используйте эту кнопку, чтобы открыть диалоговое окно настойки REST.
Открыть кэш...
Используйте эту кнопку, чтобы открыть кэш строк подключения.
Можно изменять, добавлять и удалять кэшированные строки подключения.
Обратите внимание, что надстройка шифрует строки подключения с помощью Microsoft Cryptography API.
Тест подключения
Используйте эту кнопку, чтобы проверить соединение.
Надстройка выполняет такую проверку в фоновом режиме. Но при этом он не выводит сообщения об ошибках.
Данная кнопка запускает процесс проверки в основном потоке и выводит сообщение, если возникла ошибка.
Помощь
Используйте эту кнопку, чтобы открыть справку.
Отмена
Используйте эту кнопку, чтобы закрыть диалоговое окно.
Назад
Используйте эту кнопку для перехода на предыдущий шаг мастера.
Далее
Используйте эту кнопку для перехода на следующий шаг мастера.
Мастер содержит дополнительные шаги, если необходимо выбрать объект веб-сервиса, например в OData.
Готово
Используйте эту кнопку для закрытия мастера и вставки запроса.
Кнопка доступна, если надстройка успешно получила данные.
Чтобы понять ошибку соединения, нажмите кнопку "Тест подключения".

Настройка URL

Надстройка SaveToDB автоматически определяет параметры HTTP-запросов и помещает их на ленту для возможного изменения.

Например, для следующего запроса будут выделены параметры: symbols, chartType, isEOD, isCS, isVol.

https://finance-services.msn.com/Market.svc/ChartAndQuotes?symbols=AAPL&chartType=1y&isEOD=True&isCS=true&isVol=true

Надстройка позволяет переопределить параметры в формате {<Имя параметра>=<Значение по умолчанию>}.

Например, для приведенного выше запроса можно использовать единственный параметр Symbol для ввода тикера акции:

https://finance-services.msn.com/Market.svc/ChartAndQuotes?symbols={Symbol=AAPL}&chartType=1y&isEOD=True&isCS=true&isVol=true

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

Для остальных веб-страниц и недокументированных веб-сервисов, надстройка применяет интеллектуальные алгоритмы для извлечения данных.

Вы можете настроить вывод с помощью специальных параметров анализатора, описанных ниже.

Для приведенного выше примера, данные необходимо брать из узла JSON Chart.Series.

Поэтому, URL-адрес может содержать параметр rootpath=Chart.Series, отделяемый точкой с запятой:

https://finance-services.msn.com/Market.svc/ChartAndQuotes?symbols={Symbol=AAPL}&chartType=1y&isEOD=True&isCS=true&isVol=true;rootpath=Chart.Series

Если вставить данные этого запроса, то мы получим исторические цены акции с веб-сайта MSN Money.

Но, при этом мы получим колонки из ответа JSON: T, Op, Hp, Lp, P, V.

SaveToDB 10 позволяет использовать команды SELECT для HTTP-запросов, включая использование псевдонимов.

Например, запрос может выглядеть следующим образом (URL запрос обрамлен квадратными скобками):

SELECT T AS Date, Op AS Open, Hp AS High, Lp AS Low, P AS Close, V AS Volume FROM [https://finance-services.msn.com/Market.svc/ChartAndQuotes?symbols={Symbol=AAPL}&chartType=1y&isEOD=True&isCS=true&isVol=true;rootpath=Chart.Series]

В итоге мы получим таблицу с колонками Data, Open, High, Low, Close и Volume. И параметром Symbol на ленте для изменения тикера.

Как было сказано выше, загруженные веб-данные можно сохранять в базу данных, в том числе с использованием методов надстройки из макросов.

Также можно применять все возможности Excel, включая вставку и добавление новых колонок с формулами, сортировку, условное форматирование и т.д.

Подключение к веб-сервисам OData

При подключении к веб-сервисам OData мастер содержит дополнительный шаг выбора объекта.

Мастер подключения к веб-данным - пример подключения к OData

Мастер подключения к веб-данным - выбор объекта OData

Контейнеры OData аналогичны представлениям списка запросов базы данных.

С помощью элемента списка запросов можно выбрать контейнер или схему объектов контейнера, а затем объект контейнера.

Ввод параметров

Если запрос содержит параметры, в том числе параметры FunctionImport для OData, то мастер предлагает дополнительное окно.

Например:

Мастер подключения к веб-данным - ввод параметров

В окне можно ввести значения параметров, а также отметить поля, которые следует поместить на ленту, в правой колонке.

Параметры парсера

Надстройка SaveToDB извлекает данные из страниц HTML, XML, JSON, CSV и обычного текста с помощью встроенных интеллектуальных синтаксических анализаторов.

Синтаксические анализаторы можно настроить с помощью приведенных ниже параметров. Разделяйте параметры точкой с запятой.

AddRowNum=true

Используйте этот параметр для добавления колонки номера строки в выходные данные.

ApiResult=true

Используйте этот параметр, если веб-служба возвращает результаты REST API JSON.

Этот параметр отключает специальные синтаксические анализаторы, используемые для извлечения данных из нерегулярного JSON.

AsIs=true

Используйте этот параметр для подавления любой специальной обработки входных данных.

Например, так можно запретить преобразование значений timestamp Yahoo в значения datetime.

CapitalLetter=true

Используйте этот параметр, чтобы выводить первые символы полей в верхнем регистре (только JSON).

CollapsedNodes=<узел>[,...]

Этот параметр используется для включения значений дочерних узлов XML в родительский узел.

Например, узел XML имеет следующую структуру:

<passages>
<passage><hlword>Yandex</hlword> - the search engine that can...</passage>
</passages>

Чтобы иметь один столбец passages, используйте:

collapsedNodes=passages

FirstRow=<номер>

Используйте этот параметр для установки первой строки исходных данных для вывода.

FirstRowHasNames=true|false

Используйте этот параметр, чтобы подсказать анализатору имеют ли исходные данные заголовки или нет.

IgnoredTags=<тег>[...]

Используйте этот параметр для отключения создания столбцов для указанных XML-тегов.

Например, узел XML имеет следующую структуру:

<passages>
<passage><hlword>Yandex</hlword> - the search engine that can...</passage>
</passages>

Чтобы игнорировать тег hlword, используйте:

ignoredTags=hlword

NoSourceHeaders=True

Используйте этот параметр для подавления использования заголовков HTML-таблиц в качестве имен столбцов.

Например, эта опция используется для импорта финансовых отчетов из Интернет с регулярной структурой, но динамическими заголовками колонок.

Используйте этот параметр, если первая строка CSV и текстовых файлов или заголовков HTML-таблиц не содержит имен столбцов.

В этом случае надстройка создает столбцы с именами как F1, F2 и т.д.

Этот вариант полезен для балансовых отчетов, в которых в качестве заголовков столбцов используются годы или кварталы.

Этот параметр противоположен параметру firstRowHasNames.

Pages=<количество страниц>

Используйте этот параметр для указания количества загружаемых страниц. Например, количества страниц с разными датами экспирации опционов.

Например:

pages=20

Этот параметр работает только, если надстройка может обнаружить URL-адреса следующих страниц.

RootPath=<корневой путь>

Используйте этот параметр для задания корневого элемента вывода.

Вот несколько примеров для источников XML, JSON и HTML:

rootPath=.InvoiceTransmission.Invoice
rootPath=calls,puts
rootpath=*.*.timestamp,*.*.*.quote,*.*.*.adjclose
rootPath=1

Без этой опции надстройка автоматически определяет выходные столбцы.

Поддерживается несколько корневых узлов для JSON и HTML, и только один корень для XML.

RowValues=True

Используйте этот параметр для вывода значений XML и JSON в строках.

Эта может быть полезно для изучения структуры исходных данных.

SkippedNodes=<узел>[,...]

Используйте этот параметр для исключения узлов XML или JSON из выходных данных.

Можно указать пути к столбцам, например parent1.parent2.column, или суффиксы, например .column.

Например, чтобы исключить столбцы с типами данных, заданными в атрибутах type, используйте:

skippedNodes=.type