Имя: Пароль:
1C
1С v8
Парсить Internet Explorer
0 junirm
 
04.07.16
14:25
Добрый день. Не получается пропарсить сайт IE:( Может у кого есть пример  или поможете дельными советами, буду очень благодарен. Информации в интернете много, но ничего толкового для себя я не нашел. P.S. работать в 1с только учусь, по этому прошу строго не судть)
1 PR
 
04.07.16
14:26
2 junirm
 
04.07.16
16:22
https://wwwapps.ups.com/WebTracking/processInputRequest?AgreeToTermsAndConditions=yes&loc=ru_RU&Requester=trkinppg&tracknum=H9725147134   вот сайт который мне нужно пропарсить!

но не выходит. подскажите добрые люди где ошибка


IE = Новый COMОбъект("InternetExplorer.Application");
    IE.Visible = Истина;
    СерверИсточник = "wwwapps.ups.com";    
    Адрес = "https://wwwapps.ups.com/WebTracking/processInputRequest?AgreeToTermsAndConditions=yes&loc=ru_RU&Requester=trkinppg&tracknum=";;        
    ВремКаталог = КаталогВременныхФайлов() + "tempUPS";
    СоздатьКаталог(ВремКаталог);
    Попытка
        УдалитьФайлы(ВремКаталог,"*.*");
    Исключение
        Возврат;
    КонецПопытки;    
    
    Для Каждого СтрПисьмо Из РезЗапроса Цикл
        Если Найти(СтрПисьмо.НомерНакладной, ",") Тогда
            Продолжить;
        КонецЕсли;
        
        ИмяВходящегоФайла = "" + ВремКаталог + "\" + "UPS" + СокрЛП(СтрПисьмо.НомерНакладной);
        СтрокаПараметраПолучения = Адрес + СокрЛП(СтрПисьмо.НомерНакладной) + "&track.x=%CE%F2%F1%EB%E5%E4%E8%F2%FC";
        СтрокаПараметраПолучения = Адрес + СокрЛП("H9725147134") + "&track.x=%CE%F2%F1%EB%E5%E4%E8%F2%FC";
        //СтрокаПараметраПолучения = Адрес + СокрЛП("H9725147134") + "&track.x=%25CE%25F2%25F1%25EB%25E5%25E4%25E8%25F2%25FC";
                   IE.Navigate(Адрес + СокрЛП(СтрПисьмо.НомерНакладной));
         Пока IE.readyState < 4 Цикл
            КонецЦикла;

        Если ЗапроситьФайлыССервера(СерверИсточник, СтрокаПараметраПолучения, ИмяВходящегоФайла, , Истина) <> Истина Тогда
            //Предупреждение("Не удалось получить интернет-ресурс.",10, "Предупрежедние");
            Продолжить;
        КонецЕсли;

        ВходящийФайл = Новый Файл(ИмяВходящегоФайла);
        Если НЕ ВходящийФайл.Существует() Тогда
            //Предупреждение("Не удалось получить файл данных.",10, "Предупрежедние");
            Продолжить;
        КонецЕсли;
        
        Текст = Новый ТекстовыйДокумент;
        Текст.Прочитать(ИмяВходящегоФайла, КодировкаТекста.UTF8);
        ПоискДоставлено = Ложь;
        ПоискРасписался = Ложь;
        СписокДанных = Новый СписокЗначений;
        Для ЧисИндекс1 = 1 По Текст.КоличествоСтрок() Цикл
            Стр = Текст.ПолучитьСтроку(ЧисИндекс1);
            Если Найти(Стр, "Доставлено:") Тогда
                ПоискДоставлено = Истина;
            КонецЕсли;
            Если ПоискДоставлено Тогда
                Если Найти(Стр, "<dd>") Тогда
                    Стр = Текст.ПолучитьСтроку(ЧисИндекс1+1);
                    СписокДанных.Добавить(СокрЛП(Прав(Стр, СтрДлина(Стр) - Найти(Стр, "&nbsp;") - 5)));
                    Стр = Текст.ПолучитьСтроку(ЧисИндекс1+2);
                    СписокДанных.Добавить(СокрЛП(Прав(Стр, СтрДлина(Стр) - Найти(Стр, "&nbsp;") - 5)));
                    ПоискДоставлено = Ложь;
                КонецЕсли;
            КонецЕсли;
            
            Если Найти(Стр, "Расписался:") Тогда
                ПоискРасписался = Истина;
            КонецЕсли;
            Если ПоискРасписался Тогда
                Если Найти(Стр, "<dt>") И Найти(Стр, "</dt>") = 0 Тогда
                    СписокДанных.Добавить(Прав(Стр, СтрДлина(Стр) - Найти(Стр, "<dt>") - 3));
                    ПоискРасписался = Ложь;
                КонецЕсли;
            КонецЕсли;
        КонецЦикла;
3 Лефмихалыч
 
04.07.16
17:05
не надо ни чего парсить. UPS  предоставляет нормальный API
https://www.ups.com/content/ru/ru/bussol/browse/cat/developer_kit.html
4 Serginio1
 
04.07.16
17:20
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший