JAVASCRIPT и 1С ( парсинг страниц)

1. faust1976 12 05.10.14 12:19 Сейчас в теме
Добрый день

Идея такая, при парсенге страниц с ajax из 1С часто сталкиваюсь с тем что данные для отрисовки старниц передаются в виде массивов внутри javascript.
Приходится обрезать код и пасить уже то что осталось как JSON, благо есть написаный парсер.
Идея в следующем : есть библиотека microsoft_jscript которая используется ИЕ для разбора скриптов. Можно ли каким то образом поднять её как СОМ объект подат ей на вход скрипты из страницы , дать команду распарсить и забрать список переменных которые получаются в результате парсинга. В том числе и массивы данных.

Вопрос : реализуема ли эта идея, и есть ли у кого примеры использования библиотеки в таком режиме . ( у меня нет VS, а в MSDN online пока не нашел)

Буду благодарен за любую информацию
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. nsm 10.10.14 00:36 Сейчас в теме
(1) faust1976,
Приходится обрезать код и пасить уже то что осталось как JSON, благо есть написаный парсер.
Идея в следующем : есть библиотека microsoft_jscript которая используется ИЕ для разбора скриптов. Можно ли каким то образом поднять её как СОМ объект подат ей на вход скрипты из страницы , дать команду распарсить и забрать список переменных которые получаются в результате парсинга. В том числе и массивы данных.

Можете поделиться опытом или Вашим парсером (для анализа его работы и попытки сделать свой), поскольку хоть убей не могу понять как "обрезать код" и получать хоть какую то информацию со станиц.
3. faust1976 12 10.10.14 16:37 Сейчас в теме
Не совсем понял Ваш вопрос.
Что делается внутри странички я писал в http://forum.infostart.ru/forum86/topic117847/message1224603/#message1224603
4. nsm 10.10.14 20:11 Сейчас в теме
Суть моего вопроса в том, что у меня был парсер он отлично работал с exist ru, но это было тогда когда был простой html, потом exist ушёл на ajax, я стал искать другие варианты каталогов autopiter ru marketparts ru shop.amayama ru, но мне не хватает знаний в области web программирования и я не могу собрать новый парсер, данные не попадают ко мне в форму. Вот и обращаюсь за помощью к тем людям у которых эти знания имеются.
5. faust1976 12 11.10.14 14:19 Сейчас в теме
ОК. Тогда рассказываю :

Интернет площадка с которой я работаю написана с использованием аякс.

Страница создается динамически на стороне клиента
Она представляет из себя страничку примерного вида

<ht ml>
<head>
<title>Заголовок странцы</title>
<sc ript src="jquery-1.11.0.js" ></sc ript>
</head>
<body>

<div class="table_bg_soft">
<sc ript src="common1.js"></sc ript>
<sc ript src="1.js"></sc ript>
<sc ript src="2.js"></sc ript>
Показать


Т.к. страница создается на стороне браузера то все данные находятся в вайле скрипта ...
Это я выяснил открыв страничку браузером Хром далее F12 Закладка - Source
там видны скрипты и нужные мне исходные данные ...

Далее пишу код на 77

sURL = Ссылка;
ИЕ = CreateObject("InternetExplorer.Application");
ИЕ.Visible = 1;
ИЕ.Navigate (sURL);

Пока ИЕ.ReadyState <> 4 Цикл
Состояние("Ожидаем");
КонецЦикла;

Если СокрЛП(ИЕ.LocationURL)<>sURL Тогда

Предупреждение("Не прошла авторизация");
Возврат;

КонецЕсли;

Состояние("Выгружаем скрипты");

doc = ИЕ.Document();

лКолСкриптов = doc.Scripts.Length;

Для Сч=0 По лКолСкриптов-1 Цикл
лФайл = СоздатьОбъект("Текст");
лТекст = doc.Scripts(Сч).Text;
лФайл.ДобавитьСтроку(лТекст);
лФайл.Записать(КаталогИБ()+"\IEWork\"+Строка(сч)+".js");
КонецЦикла;


Затем пишу создаю в той же папке сраничку вида

<ht ml>
<body>
<sc ript src="2.js"></sc ript>
<sc ript type="text/javascript">
$(document).ready(function(){
$("body").empty();

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();

лФайл = СоздатьОбъект("Текст");
лФайл.ДобавитьСтроку(doc.body.outerText);
лФайл.Записать(КаталогИБ()+"\IEWork\Report.txt");
ИЕ.Quit();

Данные уже задираю как строку ...

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

Если мои изыскания вам помогли буду рад.
Можем обсудить в скапе .. ник такой же
6. nsm 11.10.14 14:37 Сейчас в теме
(5) faust1976, спасибо вам за ответ, теперь буду вникать) мне показалось, что вот этот вариант http://infostart.ru/public/285787/ вроде как можно рассмотреть. за приглашение обсудить спасибо, правда вся проблема в том, что общение со мной в этом вопросе не сдвинет вас к поставленной цели ни на сантиметр))
7. faust1976 12 11.10.14 15:30 Сейчас в теме
Мне не поможете в этом. может в другом поможете ...
Я посмотрел на ваш сайт но там нужно регистрироваться, там я задачу не понял
Успехов ...
8. nsm 11.10.14 15:51 Сейчас в теме
Да с удовольствием, мне всегда нравиться делиться опытом, мой скайп kmv_1977.
Всё же если не затруднит гляньте shop.amayama.ru там регистрация не нужна. могу поделиться своим парсером, может пригодится. смысл в том, что если на сайте вывести список аналогов он находит есть ли что то у меня на складе.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот