В процессе изучения Тинькова как брокера выяснилось, что не все купленные акции одинаково полезны. Для маржинальной торговли необходимо, чтобы они входили в ликвидный портфель ибо только они и деньги могут являться обеспечением. Список ликвидных акций недоступен по API, поэтому возникла задача распарсить страницу https://www.tinkoff.ru/invest/margin/equities/и извлечь необходимые данные оттуда.
На всякий случай предупрежу, что маржинальная торговля у Тиньков полна подводных камней и туда пока лучше вообще не нырять, пока они не изменят правила. Сейчас они рассчитаны на людей, которые сильно хотят заработать, но не сильны в математике. Так например, если непокрытая позиция составляет 50 000 руб, то ставка переноса позиций составляет 18.25 процентов годовых, а если 50 000.01, то 32.85. Неожиданно, правда:) То есть молодой брокер использует свои старые банковские приемы "сложные условия применения" и "мелкий шрифт". В общем, кто предупрежден, тот вооружен.
Данные обработки являются очередным примером как из 1С можно распарсить сайт. Парсинг происходит через ПостроительDOM. Интерес представляет то, что используется поиск по фильтрам, упрощающий работу с html-документами, который появился в версии 8.3.13. То есть вместо различных переборов вида ДокументHTML.ПолучитьЭлементыПоИмени(<Имя>) используется ДокументHTML.НайтиПоФильтру(<Фильтр>), где Фильтр -строка, содержащая текст JSON-конфигурации, описывающей узлы, которые будут возвращены. Такой подход позволяет обрабатывать в том числе и классы с динамическими именами, что и демонстрируют данные обработки.
1.х Самый простой пример загрузки данных с сайта. Достаточно для понимания, как работает функция.
2.х Пример загрузки изображения с сайта и его дальнейшая обработка. В качестве образца для скачивания взята страница
https://www.tinkoff.ru/invest/stocks/DSKY/. Для скачивания используется тот же подход что и в обработке 1.х
После загрузки картинка увеличена и повернута на 90 градусов. Углы поворота должны быть кратны 90 градусам. Для обработки используются COM-объекты “WIA.ImageFile" и “WIA.ImageProcess”, которые идут в стандартной поставке Windows, начиная с Windows Vista [desktop apps only] и Windows Server 2003 R2 [desktop apps only]. Несмотря на множество примеров в интернете интерес может представлять использование сразу нескольких фильтров за один раз.
3.х Для тех, кто любит примеры посложнее. Парсинг списка акций со страницы https://www.tinkoff.ru/invest/stocks/. Особенности реализации.
- Есть параметры запроса.
- Направление движения пришлось определять по цвету треугольника, который является одним из атрибутов узла.