Идея такая, при парсенге страниц с ajax из 1С часто сталкиваюсь с тем что данные для отрисовки старниц передаются в виде массивов внутри javascript.
Приходится обрезать код и пасить уже то что осталось как JSON, благо есть написаный парсер.
Идея в следующем : есть библиотека microsoft_jscript которая используется ИЕ для разбора скриптов. Можно ли каким то образом поднять её как СОМ объект подат ей на вход скрипты из страницы , дать команду распарсить и забрать список переменных которые получаются в результате парсинга. В том числе и массивы данных.
Вопрос : реализуема ли эта идея, и есть ли у кого примеры использования библиотеки в таком режиме . ( у меня нет VS, а в MSDN online пока не нашел)
Приходится обрезать код и пасить уже то что осталось как JSON, благо есть написаный парсер.
Идея в следующем : есть библиотека microsoft_jscript которая используется ИЕ для разбора скриптов. Можно ли каким то образом поднять её как СОМ объект подат ей на вход скрипты из страницы , дать команду распарсить и забрать список переменных которые получаются в результате парсинга. В том числе и массивы данных.
Можете поделиться опытом или Вашим парсером (для анализа его работы и попытки сделать свой), поскольку хоть убей не могу понять как "обрезать код" и получать хоть какую то информацию со станиц.
Суть моего вопроса в том, что у меня был парсер он отлично работал с exist ru, но это было тогда когда был простой html, потом exist ушёл на ajax, я стал искать другие варианты каталогов autopiter ru marketparts ru shop.amayama ru, но мне не хватает знаний в области web программирования и я не могу собрать новый парсер, данные не попадают ко мне в форму. Вот и обращаюсь за помощью к тем людям у которых эти знания имеются.
Т.к. страница создается на стороне браузера то все данные находятся в вайле скрипта ...
Это я выяснил открыв страничку браузером Хром далее F12 Закладка - Source
там видны скрипты и нужные мне исходные данные ...
Пока ИЕ.ReadyState <> 4 Цикл
Состояние("Ожидаем");
КонецЦикла;
Если СокрЛП(ИЕ.LocationURL)<>sURL Тогда
Предупреждение("Не прошла авторизация");
Возврат;
КонецЕсли;
Состояние("Выгружаем скрипты");
doc = ИЕ.Document();
лКолСкриптов = doc.Scripts.Length;
Для Сч=0 По лКолСкриптов-1 Цикл
лФайл = СоздатьОбъект("Текст");
лТекст = doc.Scripts(Сч).Text;
лФайл.ДобавитьСтроку(лТекст);
лФайл.Записать(КаталогИБ()+"\IEWork\"+Строка(сч)+".js");
КонецЦикла;
var strBodyData = "";
for( i in users ){
var user = users[i];
strBodyData += user.id; }
$("body").append( strBodyData );
</sc ript>
Показать
Т.е в свою написаную страничку включаю чужой скрипт с данными, затем командой $("body").empty(); очищаю содержимое окна браузера и вывожу туда данные из массива users.
И в коде 77
ИЕ.Navigate (КаталогИБ()+"IEWork\IE0.html");
Пока ИЕ.ReadyState <> 4 Цикл
Состояние("Ожидаем");
КонецЦикла;
doc = ИЕ.Document();
(5) faust1976, спасибо вам за ответ, теперь буду вникать) мне показалось, что вот этот вариант http://infostart.ru/public/285787/ вроде как можно рассмотреть. за приглашение обсудить спасибо, правда вся проблема в том, что общение со мной в этом вопросе не сдвинет вас к поставленной цели ни на сантиметр))
Да с удовольствием, мне всегда нравиться делиться опытом, мой скайп kmv_1977.
Всё же если не затруднит гляньте shop.amayama.ru там регистрация не нужна. могу поделиться своим парсером, может пригодится. смысл в том, что если на сайте вывести список аналогов он находит есть ли что то у меня на складе.