Имя: Пароль:
1C
 
Разбор html кода
,
0 TheAutumnWillBe Cold
 
20.06.24
23:53
С помощью API получаю html страницу (скрин 1)
Мне необходимо получить данные из выделенных блоков 1,2,3 (данные тегов h1, класса e-time и e-description)

У кого есть идеи, как можно это сделать?
1 Garykom
 
гуру
21.06.24
00:15
Классика же
Нанять программиста
За деньги
2 Franchiser
 
гуру
21.06.24
00:30
Функция ПолучитьHTMLСтраницу(URL)
    // Создаем HTTP-запрос
    ЗапросHTTP = Новый HTTPЗапрос(URL);
    
    // Отправляем запрос и получаем ответ
    ОтветHTTP = HTTPСоединение.Получить(ЗапросHTTP);
    
    // Проверяем статус ответа
    Если ОтветHTTP.КодСостояния = 200 Тогда
        // Получаем содержимое страницы
        HTMLСтраница = ОтветHTTP.ПолучитьТелоКакТекст();
        Возврат HTMLСтраница;
    Иначе
        Сообщить("Ошибка при получении страницы: " + ОтветHTTP.КодСостояния);
        Возврат "";
    КонецЕсли;
КонецФункции

Функция ИзвлечьДанныеИзHTML(HTMLСтраница, Тег)
    // Загружаем HTML как XML
    XMLДокумент = Новый XMLДокумент;
    XMLДокумент.ЗагрузитьИзСтроки(HTMLСтраница);
    
    // Получаем все элементы по тегу
    Элементы = XMLДокумент.ДокументЭлемент.ПолучитьЭлементыПоИмени(Тег);
    
    // Создаем массив для хранения данных
    Данные = Новый Массив;
    
    // Проходим по всем элементам и извлекаем текст
    Для Каждого Элемент Из Элементы Цикл
        Данные.Добавить(Элемент.Текст);
    КонецЦикла;
    
    Возврат Данные;
КонецФункции

Процедура ПримерИспользования()
    URL = "https://example.com";
    Тег = "title"; // Тег, данные из которого нужно извлечь
    
    HTMLСтраница = ПолучитьHTMLСтраницу(URL);
    
    Если ПустаяСтрока(HTMLСтраница) Тогда
        Сообщить("Не удалось получить HTML страницу");
        Возврат;
    КонецЕсли;
    
    Данные = ИзвлечьДанныеИзHTML(HTMLСтраница, Тег);
    
    Сообщить("Извлеченные данные: " + СтрСоединить(Данные, ", "));
КонецПроцедуры
3 sikuda
 
21.06.24
10:00
(2) Новый XMLДокумент; - это что-то новенькое ;)
4 Franchiser
 
гуру
21.06.24
14:10
(3) да, ИИ немного ошибся...
5 программистище
 
21.06.24
14:21
Ситакс-помощник
ДокументHTML (HTMLDocument)
Доступен, начиная с версии 8.2.
6 maxab72
 
21.06.24
14:23
(4) Заглянул в будущее, в платформу 9.0
7 sikuda
 
21.06.24
14:33
(6) 1С Исполнитель версии 10 - Обходимое, Закрываемое, HTMLОбразное,  ХMLОбходимое, CSSВложеное ;)
8 unbred
 
21.06.24
15:29
(2) мне понравилось.
зы:
тоже просил чат нарисовать пару функций, он в обоих случаях рисовал методы, которых нет у объектов.
9 timurhv
 
21.06.24
15:39
(8) Зато красиво, не портянка в одной процедуре, логика лучше стажеров)
10 NorthWind
 
21.06.24
15:39
(8) Объект.СделатьВсеКрасиво ();
11 maxab72
 
21.06.24
15:39
(8) Он художник - он так видит.
Некогда Бьерн Страуструп предлагал язык "с 2000", в котором можно было переопределять все что угодно, и можно было вводить методы, не определенные в классе. Компилятор должен был обрабатывать их по аналогиям. То есть если есть другие классы, где этот метод определен, то ищется тот класс, который наиболее похож на требуемый, и берется его метод.
12 unbred
 
21.06.24
15:42
(11) кайф. хочу.