|
ЧтениеHTML помогите разобраться | ☑ | ||
---|---|---|---|---|
0
Boudybuilder
08.12.13
✎
16:44
|
ЧтениеHTML = Новый ЧтениеHTML;
ЧтениеHTML.ОткрытьФайл(Адрес,"windows-1251"); ПостроительDOM = Новый ПостроительDOM; ДокументHTML = ПостроительDOM.Прочитать(ЧтениеHTML); ЭлементыDOM = ДокументHTML.ПолучитьЭлементыПоИмени("div"); Таким образом ЭлементыDOM у меня всегда количество 0. Я так понял что ЧтениеHTML у меня хромает. Там адрес можно так указывать "http://www.forum.mista.ru/" , или это должен быть файл сохраненный локально? |
|||
1
Лефмихалыч
08.12.13
✎
16:50
|
(0) давай начнем с того, что и зачем тебе надо
|
|||
2
Boudybuilder
08.12.13
✎
16:52
|
Задачу поставтл , так как надо пропарсить один сайт , а через поле на форме ПолеHTMLДокумента невозможно работать так как выкидывает слишком много предупреждений о ошибке скирипта. Я уже и IE настраивал по разному , отключал отладку скриптов , но не помогало... :(
А тут нашел , что можно таким способом v8: Парсинг сайтов средствами 1С вот и осваиваю... На правильном ли я пути? И еще вопрос. Создал когда то обработку по парсингу яндекс маркета , с загрузкой картинок и свойств в номенклатуру. Кто пользуется , тому понравилось... Но там все должно быть по порядку. Заходим на страничку элемента , потом обработка находит ссылку на характеристики и галерею , заходит в характеристики ,парсит характери , потом заходит на страничку с картинками , качает картинки... Вот такая вот последовательность действий меня смущает. Итернет уже давно позволяет все качать в несколько потоков. Как можно реализовать парсинг сразу нескольких страниц... Например есть страничка с таблицей товаров , и ссылками на них. Пропарсить все ссылки товаров - это понятно. А как дальше парсить уже странички товаров , чтобы не поп порядку а сразу все! Тоесть запустить все ссылки сразу...??? |
|||
3
Boudybuilder
08.12.13
✎
16:54
|
(1) Спасибо что откликнулись.
Да вот , хотел бы парсить сайт поставщика и получать все его описания и изображения на сайте. Или пригодится конкурента пропарсить , и цены стянуть ))) |
|||
4
Boudybuilder
08.12.13
✎
16:56
|
Я бы согласился и на поле HTML документа, но уж больно там много ошибок... :(
Да и скорость работы с ним не оч устраивает... Тут вопрос о скорости тоже стоит.... |
|||
5
Boudybuilder
08.12.13
✎
17:50
|
Для начала его во временный файл запихать?
Соединение = Новый HTTPСоединение(Сервер); Соединение.Получить(Адрес,ИмяФайла); |
|||
6
Boudybuilder
08.12.13
✎
19:33
|
Где все????
ЧтениеHTML = Новый ЧтениеHTML; ЧтениеHTML.ОткрытьФайл(ВремФайл,"windows-1251"); ПостроительDOM = Новый ПостроительDOM; ДокументHTML = ПостроительDOM.Прочитать(ЧтениеHTML); ЭлементыDOM = ДокументHTML.ПолучитьЭлементыПоИмени("div"); Для Каждого ЭлементDOM Из ЭлементыDOM Цикл Если ЭлементDOM.ИмяКласса = "content-wrap" Тогда ПолучитьСсылку(ЭлементDOM); КонецЕсли; КонецЦикла; Как то так вытянул... Но добраться до дочерних не могу!!! |
|||
7
Boudybuilder
08.12.13
✎
19:36
|
Как тут перебрать все дочерние ?
Пробую писать через рекурсию. Если правильно пишу.... Процедура ПолучитьСсылку (ЭлементDOM) Для Каждого ДочУзел ИЗ ЭлементDOM.ДочерниеУзлы Цикл Сообщить ("Цикл"); Попытка //Если ДочернийУзел.ИмяКласса = "content" Тогда Сообщить ("Ид: " + ДочУзел.Идентификатор + " ИмяКласса: " + ДочУзел.ИмяКласса); //КонецЕсли; Исключение КонецПопытки; ПолучитьСсылку(ДочУзел); КонецЦикла; КонецПроцедуры Но что то она в глубь тела документа не залазит... Тока верхние узлы читает. Проверяю отладчиком - дочерних 0 !!! Почему дочерние не видит? |
|||
8
Boudybuilder
10.12.13
✎
17:20
|
Самый свежий вопрос:
Все ссылки у меня идут перебором строк ТЧ. По каждой переходит , открывает и читает... Но... Пришлось поставить после каждого "Перейти" Предупреждение(Текст,6); Иначе галопом все ссылки цикл отработает , и толку не будет. Тут у меня фиксировано 6 секунд даю . Но они то быстрее грузятся то дольше. Как это заменить на какой то обработчик ожидания получения данных из странички? чтобы как только стянулись данные , переходило к следующей строке...? А то ведь без задержки делает новый переход , и не дожидается получения данных , которые идут в событии ДокументСформирован ... Помогите хоть с этим вопросом. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |