Мастер подключения к веб-данным
Надстройка 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 аналогичны представлениям списка запросов базы данных.
С помощью элемента списка запросов можно выбрать контейнер или схему объектов контейнера, а затем объект контейнера.
Ввод параметров
Если запрос содержит параметры, в том числе параметры 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