Версия для печати темы (https://pro1c.org.ua/index.php?s=0ae2be61f02f7e162c18fedd37fa9970&showtopic=24036)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ АдресСайта при HTTPСоединение

Автор: kosalex 10.07.15, 9:52

Есть сайт, пытаюсь его пропарсить http://pro1c.org.ua/redirect.php?http://mprestige.com.ua/. Вот код которым пытаюсь парсить:

Процедура ПропарситьКаталог(Каталог = "", Раздел = "")
    ЧтениеХТМЛ = Новый ЧтениеHTML;
    ПостроительДОМ = Новый ПостроительDOM;
    //Генерируем имя файла на диске, в который запишется страница сайта
    ИмяФайла = КаталогЗагрузкиВременныхФайлов + "\catalog\" + СтрЗаменить(Каталог, "\", "_") + ".html";
    //Загружаем нужную нам страницу в каталог
    Соединение.ОтправитьДляОбработки(Каталог, ИмяФайла); //ВОТ ЗДЕСЬ ВЫЛЕТАЕТ С ОШИБКОЙ. ПРОБОВАЛ И метод ПОЛУЧИТЬ(), ВСЕ РАВНО НЕ ПОЛУЧАЕТ СТРАНИЦУ....
    //Начинаем чтение нашего файла
    ЧтениеХТМЛ.ОткрытьФайл(ИмяФайла, "UTF-8");
КонецПроцедуры

Процедура ЗагрузитьКаталогиССайтаНажатие(Элемент)
    ПропарситьКаталог("mprestige.com.ua\dorozhnye-sumki-c-316", "Каталог");
КонецПроцедуры

Процедура УстановитьСоединениеССайтомНажатие(Элемент)
    АдресСайта = "mprestige.com.ua";
    КаталогЗагрузкиВременныхФайлов = "D:\Tmp\tmp_files";
    Соединение = Новый HTTPСоединение(АдресСайта,80,,,,120,);
    Если Соединение <> Неопределено Тогда
        ОчиститьСообщения();
        Сообщить("Соединение установлено!");    
    Иначе
        ОчиститьСообщения();
        Сообщить("Соединение не установлено!");    
    КонецЕсли;
КонецПроцедуры



Не получает страницу....смотрите в коде комментарий.

Изменил немного процедуру, заработало, но в строке (см. код), все равно какая то беда, не находит мои каталоги...
Процедура ПропарситьКаталог(Каталог = "", Раздел = "")
    ЧтениеХТМЛ = Новый ЧтениеHTML;
    ПостроительДОМ = Новый ПостроительDOM;
    //Генерируем имя файла на диске, в который запишется страница сайта
    ИмяФайла = КаталогЗагрузкиВременныхФайлов + "\catalog\" + СтрЗаменить(Каталог, "\", "_") + ".html";
    
    ЗапросХТТП = Новый HTTPЗапрос;
    ЗапросХТТП.УстановитьТелоИзСтроки(Каталог,);
    
    //Загружаем нужную нам страницу в каталог
    Соединение.Получить(ЗапросХТТП, ИмяФайла);
    
    
    //Начинаем чтение нашего файла
    ЧтениеХТМЛ.ОткрытьФайл(ИмяФайла, "UTF-8");
    //Загружаем всю структуру документа в DOM
    ДокументХТМЛ = ПостроительДОМ.Прочитать(ЧтениеХТМЛ);
    
    //Получаем все элементы TABLE
    ЭлементыКаталога = ДокументХТМЛ.ПолучитьЭлементыПоИмени("main-block");
    //Находим в них нужный нам блок, содержащий ссылки на подкаталоги
    Для Каждого ЭлементКаталога из ЭлементыКаталога Цикл //ЭЛЕМЕНТОВ НЕТ, В ЦИКЛ НЕ ЗАХОДИТ...
    ОбработкаПрерыванияПользователя();
        Если ЭлементКаталога.ИмяКласса = "item" Тогда
            //Нашли, собираем из него все ссылки (элементы А)
            ЭлементыA = ЭлементКаталога.ПолучитьЭлементыПоИмени("A");
            Если ЭлементыA.Количество() > 0 Тогда
                //Начинаем парсить каждую найденную ссылку как каталог этой же процедурой рекурсивно
                Для Каждого ЭлементA из ЭлементыA Цикл
                    ПропарситьКаталог(ЭлементA.Гиперссылка, Раздел + " / " + ЭлементA.ТекстовоеСодержимое);
                КонецЦикла;
            Иначе
                //Если ссылок не найдено, значит подкаталогов нет и это конечный подкаталог
                //Добавляем его в нашу табличную часть
                НоваяСтрока = СписокКаталогов.Добавить();
                НоваяСтрока.Раздел = Раздел;
                НоваяСтрока.СсылкаНаСтраницу = Каталог;    
            КонецЕсли;    
        КонецЕсли;
    КонецЦикла;
КонецПроцедуры

Автор: kosalex 10.07.15, 11:14

Все получилось!

Автор: beermoscow 28.11.18, 16:29

Цитата(kosalex @ 10.07.15, 12:14) *
Все получилось!


Здравствуйте. У вас все получилось. Расскажите что вы сделали.

kosalex, Здравствуйте. У вас все получилось. Расскажите что вы сделали. Если можно на gva-int@mail.ru Спасибо

Автор: kosalex 14.01.19, 0:15

beermoscow @ 28.11.18, 16:29 * ,

Уже не помню, но скорее всего что не внимательным где то был :-)

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua