Я столько раз обещал, что выложу эту наработку, теперь придётся-таки выложить…
Что умеет:
1. Прочитать исходное содержимое страницы сайта. В коде есть закомментированные возможности для com-обращения к объекту MSIE и для асинхронного чтения, но активно используется обычный MSXML2.XMLHTTP, причём в синхронном режиме, т.е. наиболее хорошо будут читаться сайты с минимумом динамических фишек. Уж извините, для всяких навороченных сайтов придётся или через оболочку html-документа и куцый браузер 1С, или ещё как.
2. Разложить html-документ в виде дерева и документа DOM, вплоть до атрибутов каждого узла. По дереву можно искать с помощью XPath и обычного нестрогого поиска. Найдя закономерности, их можно зафиксировать в настройках схемы как шаблоны поиска XPath, поименованные и называемые в обработке «промежуточными данными». Можно сделать несколько схем, ссылающихся одна на другую, для перехода по гиперссылкам (всё тоже синхронно!). Для промежуточного данного есть 3 роли — текст, картинка и гиперссылка. Можно задать тег, откуда брать данные. Схемы (настройки) можно сохранять в файлы и открывать из файлов; сами схемы в формате xml и интуитивно понятны.
3. Распознать согласно указанной схеме (и её подсхемам) данные в коллекции 1С — соответствие массивов структур и соответствий (специально, чтобы всё было удобно обрабатывать на клиенте), практически все данные в ней — строковые. Файлы (например, изображения) грузит во временные папки или сразу как объект «Картинка» в ту же коллекцию.
4. По-простому просматривать страницу и показывать её исходный текст.
Эта обработка, за исключением скачивания файлов, по сути полуфабрикат, т.к. на выходе выдаётся коллекция — а уж что с ней делать, задача дальнейшей доработки напильником.
Приношу извинения за лаконичность, но времени на полноценное описание, к сожалению, нету совсем. У каждого элемента формы прикручена подсказка; надеюсь, вам хватит.
p.s. История появления публикуемой версии банально проста — мне захотелось распотрошить и выкачать весь контент одного старого порносайта) Таки это удалось)))
Вот такая куча ошибок вываливается при открытии:
{Форма.ОсновнаяФорма.Форма(93,59)}: Переменная не определена (ЭтотОбъект)
опоп=Новый ОписаниеОповещения(«АдресОткрытие_Завершение»,<<?>>ЭтотОбъект);
{Форма.ОсновнаяФорма.Форма(115,63)}: Переменная не определена (ЭтотОбъект)
опоп=Новый ОписаниеОповещения(«АдресНачалоВыбора_Завершение»,<<?>>ЭтотОбъект);
{Форма.ОсновнаяФорма.Форма(182,82)}: Переменная не определена (ЭтотОбъект)
опоп=Новый ОписаниеОповещения(«АдресПоляПросмотраВебСтраницыНажатие_Завершение»,<<?>>ЭтотОбъект);
{Форма.ОсновнаяФорма.Форма(477,77)}: Переменная не определена (ЭтотОбъект)
опоп=Новый ОписаниеОповещения(«ПолеПоискаЗначенияОткрытиеЗавершениеВыбора»,<<?>>ЭтотОбъект);
{Форма.ОсновнаяФорма.Форма(794,90)}: Переменная не определена (ЭтотОбъект)
опоп=Новый ОписаниеОповещения(«СхемаПромежуточныхДанныхИмяСхемыНачалоВыбора_Завершение»,<<?>>ЭтотОбъект,текдан);
{Форма.ОсновнаяФорма.Форма(829,82)}: Переменная не определена (ЭтотОбъект)
опоп=Новый ОписаниеОповещения(«ПолеПапкаВременныхФайловНачалоВыбора_Завершение»,<<?>>ЭтотОбъект,Элемент);
{Форма.ОсновнаяФорма.Форма(882,73)}: Переменная не определена (ЭтотОбъект)
опоп=Новый ОписаниеОповещения(«ИмяТекущейСхемыНачалоВыбора_Завершение»,<<?>>ЭтотОбъект);
{Форма.ОсновнаяФорма.Форма(898,74)}: Переменная не определена (ЭтотОбъект)
опоп=Новый ОписаниеОповещения(«ИмяТекущейСхемыПриИзменении_Завершение»,<<?>>ЭтотОбъект);
{Форма.ОсновнаяФорма.Форма(921,68)}: Переменная не определена (ЭтотОбъект)
опоп=Новый ОписаниеОповещения(«ИмяТекущейСхемыОчистка_Завершение»,<<?>>ЭтотОбъект);
{Форма.ОсновнаяФорма.Форма(972,66)}: Переменная не определена (ЭтотОбъект)
опоп=Новый ОписаниеОповещения(«ЗагрузитьСписокСхем_Завершение»,<<?>>ЭтотОбъект);
(1) Какой релиз платформы?
Все отлично работает! Хотел бы использовать данную обработку для парсинга своих заказов с сайта http://www.aliexpress.com. В общем как распарсить уже готовый HTML, у меня идея (обработка) есть. Но столкнулся с некоторой проблемой.
http://trade.aliexpress.com/orderList.htm , нужна авторизация, как это можно реализовать?
1. Прежде чем я смогу попасть на страницу
2.Сайт выдает только 10 заказов на страницу, чтобы переключиться на следующую страницу задействован javascript,
как его можно запустить из 1с?
Что-то на JD.ru он не раскрывает дерево до цены
(3) newtech, авторизацию разумно делать средствами jscript или http-запросами, наверняка как-то это предусмотрено.
(4) надо смотреть по ситуации, так ничего сказать не могу.