|
Парсер страниц сайта | ☑ | ||
---|---|---|---|---|
0
Ramzes_n
19.11.13
✎
22:31
|
Доброго времени суток.
Уже несколько месяцев назад сделал парсер для сайта. Но вчера обработка перестала работать. Ругается на строку: "Для Каждого Стр из ЭлементыФормы.Сайт.Документ.body.all Цикл" говорит что Поле не обнаружено all. А ведь раньше работало. Кто может подсказать, с чем это может быть связано? |
|||
1
Lionee
19.11.13
✎
22:35
|
значит нет поля ,убрали
|
|||
2
Ramzes_n
19.11.13
✎
22:40
|
all - это ведь не Тег чтобы его убрали
|
|||
3
Ramzes_n
19.11.13
✎
22:58
|
других вариантов нет?
|
|||
4
Dethmont
19.11.13
✎
22:59
|
наверное body = неопределено?
|
|||
5
Ramzes_n
19.11.13
✎
23:01
|
body = COMОбъект
|
|||
6
manyak
19.11.13
✎
23:43
|
сайта страничка не открылась-загрузилась. вот там и пусто. проверяй readystate
|
|||
7
Лаврентий Берия
20.11.13
✎
00:38
|
DOM глянуть бы. Как ни странно, она может быть разный даже с одной и той же страницы под разными приложениями.
|
|||
8
badboychik
20.11.13
✎
02:00
|
что за мода пошла - писать на 1С парсеры сайтов
|
|||
9
Ramzes_n
20.11.13
✎
23:03
|
(6) readyState = "complete"
|
|||
10
Ramzes_n
20.11.13
✎
23:04
|
(7) что за DOM ?
|
|||
11
mdocs
20.11.13
✎
23:06
|
(8) а что там - по сути тот же хмл особенно для парсера.
(10) объектная модель документа. |
|||
12
zakidonoff
20.11.13
✎
23:07
|
(10) Структура реквизитов интернет-страницы, если вкратце, грубо и не придираться -)
Блин, мне тож такую штуку надо (парсер). Не поделишься? |
|||
13
Ramzes_n
20.11.13
✎
23:12
|
(12) вот. Процедура предопределенная, вызывается когда страница полностью загрузилась:
Процедура СайтДокументСформирован(Элемент) Если НачалиОбработку = Истина Тогда Для Каждого Стр из ЭлементыФормы.Сайт.Документ.body.all Цикл Если Стр.id = "wlt-PaymentAdminList-grid" Тогда Для Каждого таблица из Стр.children Цикл Если таблица.tagName = "TABLE" Тогда // нашли таблицу Для Каждого РаделыТаблицы из таблица.children Цикл Если РаделыТаблицы.tagName = "TBODY" Тогда //нашли раздел Для Каждого СтрокаТаблицы из РаделыТаблицы.children Цикл Если СтрокаТаблицы.tagName = "TR" Тогда //новая строка ДобавитьНовуюСтроку(СтрокаТаблицы); КонецЕсли; КонецЦикла; КонецЕсли; КонецЦикла; КонецЕсли; КонецЦикла; КонецЕсли; КонецЦикла; НомерСтраницы = НомерСтраницы + 1; Если НомерСтраницы > ПоследняяСтраницаПарсинга Тогда Предупреждение("Всё готово. Поздравляю!!!"); Иначе ЭлементыФормы.Сайт.Перейти("http://.../MPaymentOrderListModel_page/" + НомерСтраницы); КонецЕсли; КонецЕсли; КонецПроцедуры |
|||
14
Ramzes_n
20.11.13
✎
23:13
|
затык буквально в самом начале:
раньше ведь всё работало. Для Каждого Стр из ЭлементыФормы.Сайт.Документ.body.all Цикл |
|||
15
zakidonoff
20.11.13
✎
23:13
|
(13) ХМ. Всё проще, чем я думал )
Спс. |
|||
16
Ramzes_n
20.11.13
✎
23:26
|
варианты кончились?
|
|||
17
zakidonoff
20.11.13
✎
23:34
|
(16) Он видит all даже когда тегов боди вообще нет...
А отладчик что видит в боди? Какие реквизиты? |
|||
18
mdocs
20.11.13
✎
23:41
|
как вариант убрать копрокод с циклом, заменить на человеческий
GetElementById("wlt-PaymentAdminList-grid") |
|||
19
Ramzes_n
20.11.13
✎
23:51
|
(18) GetElementById("wlt-PaymentAdminList-grid") так получается. Но дальше опять затык:
Для Каждого таблица из Стр.children Цикл Ошибка при получении значения атрибута контекста (children) А это как обойти? |
|||
20
Ramzes_n
20.11.13
✎
23:52
|
(17) много всяких реквизитов. Во многих значение "Ошибка чтения значения"
|
|||
21
manyak
20.11.13
✎
23:54
|
Для Каждого Стр из ЭлементыФормы.Сайт.Документ.body.all Цикл
замени на Для Каждого Стр из ЭлементыФормы.Сайт.Документ.body.childNodes Цикл |
|||
22
Ramzes_n
20.11.13
✎
23:57
|
(21) пишет: Итератор для значения не определен
|
|||
23
mdocs
20.11.13
✎
23:57
|
Если ЭлементыФормы.Сайт.Документ.GetElementById("wlt-PaymentAdminList-grid")=Неопределено тогда
Предупреждение("Ну вот нет тут такого элемента, вот ничо и не работает!!!");Возврат; КонецЕсли; |
|||
24
Ramzes_n
21.11.13
✎
00:00
|
(23) ЭлементыФормы.Сайт.Документ.GetElementById("wlt-PaymentAdminList-grid") - эта конструкция работает. Выдаёт COMОбъект. А как теперь получить в нём нужные теги?
|
|||
25
zakidonoff
21.11.13
✎
00:10
|
(24) по индексу попробуй
Х = 0; Цикл Попытка GetElementById(Х) Исключение "Конец индексов" прервать КонецПопытки КонецЦикла Х = Х + 1; |
|||
26
zakidonoff
21.11.13
✎
00:25
|
(24) Во, нашёл -)
Стр.document.GetElementsBytagName("TABLE") |
|||
27
Ramzes_n
21.11.13
✎
10:07
|
Что-то странное творится. Принёс эту обработку на работу.
И на моё удивление она работает. Т.е. старый вариант обработки работает. Значит что-то на моём компе произошло. Как думаете что могло произойти? |
|||
28
AndyD
21.11.13
✎
10:16
|
(27) браузер обновился
антивирус или еще чего-нибудь |
|||
29
Ramzes_n
21.11.13
✎
10:18
|
антивирус исключено.
Браузер обновился - ну и что? сайт то открывается в 1С |
|||
30
zakidonoff
21.11.13
✎
10:23
|
(29) не совсем. Сайт открывает 1С через IE.
Нужно смотреть настройки осла. Если у тебя свойства отражаются как "Ошибка чтения значения", значит 1С неадекватно забирает параметры из эксплорера |
|||
31
Ramzes_n
21.11.13
✎
10:27
|
ок, как вариант вечером поковыряю
|
|||
32
sikuda
21.11.13
✎
10:27
|
(29) 1C тонкий клиент работает через установленный IE.
IE11 нет в списке поддерживаемых браузеров. Ты тестер, подолжайте наблюдения. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |