Имя: Пароль:
1C
1С v8
Парсинг HTML страничек
0 mzelensky
 
19.03.13
12:37
Доброго всем.
Произвожу парсинг определенных страничек. В принципе все работает, но иногда вылазиет очень не приятный глюк!

Запрашиваю нужную страничку и потом произвожу ее разбор.Но если скорость интернета падает или на странице много информации, то она открывается как-бы с задержкой и когда я получаю ее "содержимое", порой бывает, что оно не полное.

Как запросить страничку, ДОЖДАТЬСЯ ЕЕ ПОЛНОЙ ПОДГРУЗКИ, а уж потом что-то делать?!
1 Megas
 
19.03.13
12:40
Чем парсиш?
2 acsent
 
19.03.13
12:40
чем грузишь?
3 mzelensky
 
19.03.13
12:41
(1) руками! Просто получаю содержимое:

Адрес="http://бла-бла-адрес";          
ЭлементыФормы.ПолеHTMLДокумента.Перейти(Адрес);    

ТекстЧистый="";
           ТекстСТегами="";
           попытка
               ТекстЧистый= ЭлементыФормы.ПолеHTMLДокумента.Документ.body.innerText ;      //ПЕРВОНАЧАЛЬНЫЙ ТЕКСТ    
               //ТекстСТегами=ЭлементыФормы.ПолеHTMLДокумента.Документ.body.innerHTML;
           исключение
               Сообщить("Произошла ошибка получения запроса! Второй вариант - запрашиваемой страницы просто НЕТ!");
               возврат;
           конецПопытки;
4 ИсчадиеADO
 
19.03.13
12:42
там же событие есть при загрузке
5 Megas
 
19.03.13
12:42
(3) Платформа какая?
в "ПолеHTMLДокумента" никак не узнать что она догрузилать
6 acsent
 
19.03.13
12:43
зачем ие использовать то? юзай http соединение или curl
7 zladenuw
 
19.03.13
12:43
(5) а это тогда для чего  ? ДокументСформирован()
8 mzelensky
 
19.03.13
12:43
(5) 8.2.16.362
9 Megas
 
19.03.13
12:43
(7) Хз, у меня не сработало
10 mzelensky
 
19.03.13
12:44
(7) это ты откуда выдрал?
11 zladenuw
 
19.03.13
12:44
(9) ну как обычно метод есть. а хер работает :)
12 Megas
 
19.03.13
12:44
(8) в 8.2 есть лучшие объекты.
что то типа ЧтениеHTML
13 zladenuw
 
19.03.13
12:45
ПолеHTMLДокумента.ДокументСформирован (HTMLDocumentField.DocumentComplete)
ПолеHTMLДокумента (HTMLDocumentField)
ДокументСформирован (DocumentComplete)
Синтаксис:

ДокументСформирован()
Описание:

Возникает, когда HTML-документ построен и готов к использованию.
14 mzelensky
 
19.03.13
12:45
(6) да как-то сподручнее так.

А с "http соединение или curl" какие варианты?!
15 mzelensky
 
19.03.13
12:45
(13) и как мне его дождаться?! Этого события?
16 Megas
 
19.03.13
12:46
Я в 8.1 делал через COM InternetExplorer.application  всё хорошо но он жрёт память, а если освобождать то он на себя всегда переключается при создании нового.
Думаю как по другому сделать.
17 Megas
 
19.03.13
12:47
(13) У меня не сработал, повторюсь
18 mzelensky
 
19.03.13
12:48
(12) что-то в СП не совсем пример понятен...использования этого
19 Megas
 
19.03.13
12:50
(18) Спроси у людей как деалют они, или по поиску полазь, даже на мисте много примеров.
20 Kreont
 
19.03.13
12:53
Вроде такая последовательность чтения есть:
ФайлРезультат    = ПолучитьИмяВременногоФайла();
ХТТП.ОтправитьДляОбработки(ПОСТЗапрос,Ресурс,ФайлРезультат,Заголовки);
ЧтениеHTML = Новый ЧтениеHTML;
ЧтениеHTML.ОткрытьФайл(ФайлРезультат);
ПостроительDOM = Новый ПостроительDOM;
ДокументHTML = ПостроительDOM.Прочитать(ЧтениеHTML);
21 Reset
 
19.03.13
12:54
(14) HTTPСоединение.Получить()
22 zladenuw
 
19.03.13
12:57
23 Megas
 
19.03.13
12:58
(22) Это  через COM InternetExplorer.application
24 mzelensky
 
19.03.13
13:05
(20) я как-то пробовал работать через данный метод (в другйо ситуации) - получалась одна хня :( и я бросил эту дурацкую затею.

Правда в том случае нужно было Post запросы посылать хитрые
25 mzelensky
 
19.03.13
13:08
(19) В "ЧтениеHTML", как я понял, идет  последовательное чтение документа по тегам. Мне это не канат, т.к. страницы содержат очень много "мусора" и я просто запарюсь все это разбирать.
26 Megas
 
19.03.13
13:14
(25) Ну вроде типа того это DOM, обычно он удобен.
Я Фиг знает что тебе надо делать, можно воообще по извращенски:

КопироватьФайл(СсылкаНаСайт,"C:\temp.html");
27 zladenuw
 
19.03.13
13:17
а если добавить активХ windows web browser
там есть метод NavigateComplete
28 acsent
 
19.03.13
13:19
(14) минус твоего варианта, что нельзя автономно запускать на сервере по расписанию
29 zladenuw
 
19.03.13
13:21
30 mzelensky
 
19.03.13
13:27
(7) фигня метод - работает через раз
31 mzelensky
 
19.03.13
13:28
(14) мне и не надо автономно. Мне нужно чтобы задал параметры, нажал большую кнопку и ушел курить!