Имя: Пароль:
1C
1С v8
Ошибка при парсинге сайта
0 junirm
 
07.07.16
15:39
Добрый день, выкидывает ошибку при парсинке сайта "Значение не является значением объектного типа (Прочитать)
        Текст.Прочитать(ИмяВходящегоФайла, КодировкаТекста.UTF8);
" помогите пожалуйста!:))


IE = Новый COMОбъект("InternetExplorer.Application");
IE.Visible = Истина;
Текст = "";
        IE.Navigate("https://wwwapps.ups.com/WebTracking/processInputRequest?AgreeToTermsAndConditions=yes&loc=ru_RU&Requester=trkinppg&tracknum=Y0037401580";);
Пока IE.readyState < 4 Цикл
КонецЦикла;
ВходящийФайл = Новый Файл(ИмяВходящегоФайла);

Текст = IE.Document.documentElement.innerHTML;
        Текст.Прочитать(ИмяВходящегоФайла, КодировкаТекста.UTF8);
        ПоискДоставлено = Ложь;
        ПоискРасписался = Ложь;
        СписокДанных = Новый СписокЗначений;
        Для ЧисИндекс1 = 1 По Текст.КоличествоСтрок() Цикл
            Стр = Текст.ПолучитьСтроку(ЧисИндекс1);
            Если Найти(Стр, "Доставлено:") Тогда
                ПоискДоставлено = Истина;
            КонецЕсли;
            Если ПоискДоставлено Тогда
                Если Найти(Стр, "<dd>") Тогда
                    Стр = Текст.ПолучитьСтроку(ЧисИндекс1+1);
                    СписокДанных.Добавить(СокрЛП(Прав(Стр, СтрДлина(Текст) - Найти(Стр, "&nbsp;") - 5)));
                    Стр = Текст.ПолучитьСтроку(ЧисИндекс1+2);
                    СписокДанных.Добавить(СокрЛП(Прав(Стр, СтрДлина(Текст) - Найти(Стр, "&nbsp;") - 5)));
                    ПоискДоставлено = Ложь;
                КонецЕсли;
            КонецЕсли;
1 Nuobu
 
07.07.16
15:40
Что отладчик говорит?
2 ovrfox
 
07.07.16
15:46
Что значит конструкция
ВходящийФайл = Новый Файл(ИмяВходящегоФайла);

Текст = IE.Document.documentElement.innerHTML;

        Текст.Прочитать(ИмяВходящегоФайла, КодировкаТекста.UTF8);

Зачем тебе ВходящийФайл?
Советую: Перед чтением проверь, что входящий файл существует.
3 ovrfox
 
07.07.16
16:19
Возможно нужно перед циклом
Вместо
Текст = ""
Написать
Текст = Новый ТекстовыйДокумент
А вместо
Текст = IE.Document.documentElement.innerHTML;
Текст.УстановитьТекст(IE.Document.documentElement.innerHTML);
Как Вы думаете?