Парсинг HTML-страниц

08.02.15

Интеграция - WEB-интеграция

Простой парсер HTML с возможностью создания универсальных настроек. Синхронная работа, без использования встроенного браузера 1С. Скачивание файлов средствами http. УФ 8.3, безмодальный.

Скачать файлы

Наименование Файл Версия Размер
SFLoader
.epf 31,32Kb
152
.epf 31,32Kb 152 Скачать

Я столько раз обещал, что выложу эту наработку, теперь придётся-таки выложить...

Что умеет:

1. Прочитать исходное содержимое страницы сайта. В коде есть закомментированные возможности для com-обращения к объекту MSIE и для асинхронного чтения, но активно используется обычный MSXML2.XMLHTTP, причём в синхронном режиме, т.е. наиболее хорошо будут читаться сайты с минимумом динамических фишек. Уж извините, для всяких навороченных сайтов придётся или через оболочку html-документа и куцый браузер 1С, или ещё как.

2. Разложить html-документ в виде дерева и документа DOM, вплоть до атрибутов каждого узла. По дереву можно искать с помощью XPath и обычного нестрогого поиска. Найдя закономерности, их можно зафиксировать в настройках схемы как шаблоны поиска  XPath, поименованные и называемые в обработке "промежуточными данными". Можно сделать несколько схем, ссылающихся одна на другую, для перехода по гиперссылкам (всё тоже синхронно!). Для промежуточного данного есть 3 роли - текст, картинка и гиперссылка. Можно задать тег, откуда брать данные. Схемы (настройки) можно сохранять в файлы и открывать из файлов; сами схемы в формате xml и интуитивно понятны.

3. Распознать согласно указанной схеме (и её подсхемам) данные в коллекции 1С - соответствие массивов структур и соответствий (специально, чтобы всё было удобно обрабатывать на клиенте), практически все данные в ней - строковые. Файлы (например, изображения) грузит во временные папки или сразу как объект "Картинка" в ту же коллекцию.

4. По-простому просматривать страницу и показывать её исходный текст.

Эта обработка, за исключением скачивания файлов, по сути полуфабрикат, т.к. на выходе выдаётся коллекция - а уж что с ней делать, задача дальнейшей доработки напильником.

Приношу извинения за лаконичность, но времени на полноценное описание, к сожалению, нету совсем. У каждого элемента формы прикручена подсказка; надеюсь, вам хватит.

p.s. История появления публикуемой версии банально проста - мне захотелось распотрошить и выкачать весь контент одного старого порносайта) Таки это удалось)))

html парсинг страниц разбор сайтов парсинг html

См. также

Интеграция Альфа Авто 5 / Альфа Авто 6 и AUTOCRM / Инфотек

Сайты и интернет-магазины WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме. Без существенных изменений типовой конфигурации. Проверено с брендами: Интеграция 1С и GEELY Интеграция 1С и HAVAL Интеграция 1С и KIA Интеграция 1С и FORD Интеграция 1С и LADA ГАРАНТИЯ 100% ВНЕДРЕНИЯ!

36000 руб.

03.08.2020    15655    9    17    

9

Модуль для обмена "1С:Предприятие 8. УАТ. ПРОФ" с FortMonitor

WEB-интеграция 8.3.8 Конфигурации 1cv8 Автомобили, автосервисы Беларусь Украина Россия Казахстан Управленческий учет Платные (руб)

Расширение предназначено для конфигурации "1С:Предприятие 8. Управление Автотранспортом. ПРОФ". Функционал модуля: 1. Заполнение регистров сведений по подсистеме "Мониторинг", а именно: события по мониторингу, координаты по мониторингу, пробег и расход по мониторингу, текущее местоположение ТС по мониторингу 2. Заполнение путевого листа: пробег по мониторингу, время выезда/заезда, табличная часть ГСМ, места стоянок по геозонам. 3. Отчеты по данным загруженным в регистры сведений. 4. Предусмотрена автоматическая загрузка данных в фоновом режиме (условия работы данной загрузке читайте в описании товара) Модуль работает без включенной константы по настройкам мониторинга. Модуль формы предоставляется с открытым кодом, общий модуль защищен. Любой заинтересованный пользователь, имеет возможность скачать демо-версию расширения.

22656 руб.

25.05.2021    12809    30    8    

10

Интеграция 1С — Битрикс24. Обмен задачами

Сайты и интернет-магазины Интеграция WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Интеграция 1С и Битрикс24. Разработка имеет двухстороннюю синхронизацию 1С и Битрикс24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (8.3.18.1289). При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

5040 руб.

04.05.2021    17419    6    15    

13

[Расширение] БОР-Навигатор.Культура

Зарплата Бюджетный учет WEB-интеграция Обмен с ГосИС Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бюджетный учет Платные (руб)

Расширение конфигурации, включающее в себя объекты, необходимые для подготовки и сдачи отчета "Штатная численность" системы "БОР-Навигатор.Культура" в программе "1С:Зарплата и кадры государственного учреждения", редакция 3.1.

8400 руб.

01.02.2019    25686    9    0    

7

Интеграция с сервисом vetmanager

WEB-интеграция Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бытовые услуги, сервис Платные (руб)

Внешняя обработка разрабатывалась для загрузки документов из Ветменеджер в 1С: Бухгалтерия 3.0

12000 руб.

02.02.2021    16253    41    49    

22
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Mortiferus 362 23.06.15 12:46 Сейчас в теме
Вот такая куча ошибок вываливается при открытии:
{Форма.ОсновнаяФорма.Форма(93,59)}: Переменная не определена (ЭтотОбъект)
опоп=Новый ОписаниеОповещения("АдресОткрытие_Завершение",<<?>>ЭтотОбъект);
{Форма.ОсновнаяФорма.Форма(115,63)}: Переменная не определена (ЭтотОбъект)
опоп=Новый ОписаниеОповещения("АдресНачалоВыбора_Завершение",<<?>>ЭтотОбъект);
{Форма.ОсновнаяФорма.Форма(182,82)}: Переменная не определена (ЭтотОбъект)
опоп=Новый ОписаниеОповещения("АдресПоляПросмотраВебСтраницыНажатие_Завершение",<<?>>ЭтотОбъект);
{Форма.ОсновнаяФорма.Форма(477,77)}: Переменная не определена (ЭтотОбъект)
опоп=Новый ОписаниеОповещения("ПолеПоискаЗначенияОткрытиеЗавершениеВыбора",<<?>>ЭтотОбъект);
{Форма.ОсновнаяФорма.Форма(794,90)}: Переменная не определена (ЭтотОбъект)
опоп=Новый ОписаниеОповещения("СхемаПромежуточныхДанныхИмяСхемыНачалоВыбора_Завершение",<<?>>ЭтотОбъект,текдан);
{Форма.ОсновнаяФорма.Форма(829,82)}: Переменная не определена (ЭтотОбъект)
опоп=Новый ОписаниеОповещения("ПолеПапкаВременныхФайловНачалоВыбора_Завершение",<<?>>ЭтотОбъект,Элемент);
{Форма.ОсновнаяФорма.Форма(882,73)}: Переменная не определена (ЭтотОбъект)
опоп=Новый ОписаниеОповещения("ИмяТекущейСхемыНачалоВыбора_Завершение",<<?>>ЭтотОбъект);
{Форма.ОсновнаяФорма.Форма(898,74)}: Переменная не определена (ЭтотОбъект)
опоп=Новый ОписаниеОповещения("ИмяТекущейСхемыПриИзменении_Завершение",<<?>>ЭтотОбъект);
{Форма.ОсновнаяФорма.Форма(921,68)}: Переменная не определена (ЭтотОбъект)
опоп=Новый ОписаниеОповещения("ИмяТекущейСхемыОчистка_Завершение",<<?>>ЭтотОбъект);
{Форма.ОсновнаяФорма.Форма(972,66)}: Переменная не определена (ЭтотОбъект)
опоп=Новый ОписаниеОповещения("ЗагрузитьСписокСхем_Завершение",<<?>>ЭтотОбъект);
2. Yashazz 4706 23.06.15 16:51 Сейчас в теме
(1) Какой релиз платформы?
3. newtech 11.11.15 01:18 Сейчас в теме
Все отлично работает! Хотел бы использовать данную обработку для парсинга своих заказов с сайта www.aliexpress.com. В общем как распарсить уже готовый HTML, у меня идея (обработка) есть. Но столкнулся с некоторой проблемой.
1. Прежде чем я смогу попасть на страницу http://trade.aliexpress.com/orderList.htm , нужна авторизация, как это можно реализовать?
2.Сайт выдает только 10 заказов на страницу, чтобы переключиться на следующую страницу задействован javascript,
как его можно запустить из 1с?
Прикрепленные файлы:
AliExpress.txt
5. Yashazz 4706 19.11.15 12:40 Сейчас в теме
(3) newtech, авторизацию разумно делать средствами jscript или http-запросами, наверняка как-то это предусмотрено.
(4) надо смотреть по ситуации, так ничего сказать не могу.
6. Alever 4 12.11.20 10:24 Сейчас в теме
(3) Добрый день. Насколько я помню, то там необходимо дополнительные параметры при запросе отправлять в виде Заголовков для запроса...
	Заголовки = Новый Соответствие;
	Заголовки.Вставить("ContentType","application/vnd.api+json");
	КодАвторизации = "34еп345выаиц45"; //Код авторизации на сайте
	Заголовки.Вставить("X-Auth-Token", КодАвторизации ); //Вот это как раз и вставка заголовков для авторизации
	
	ДатаНачалаОтбора = ДатуВTimestamp(Дата(ТекущаяДата()))+"000"; //конвертим дату для параметра запроса
	КоличествоЗаказов = "500";
	НомерСтраницы = "0";
	
	Если НомерЗаказа = "" Тогда //запрашиваем по всем заказам
		HTTPЗапрос = Новый HTTPЗапрос("/shop/api/v2/orders?page[number]="+НомерСтраницы+"&page[size]="+КоличествоЗаказов+"&filter[orders][state]=NEW&filter[orders][creationDate][$ge]="+ДатаНачалаОтбора,Заголовки);
	Иначе //Запрос по одному заказу
		КоличествоЗаказов = 1;
		HTTPЗапрос = Новый HTTPЗапрос("/shop/api/v2/orders?page[number]="+НомерСтраницы+"&page[size]="+КоличествоЗаказов+"&filter[orders][code]="+НомерЗаказа,Заголовки);
		//Пример получившегося запроса: myShop.ru/shop/api/v2/orders?page[number]=0&page[size]=1&filter[orders][code]=11111111
	КонецЕсли;
	
	HTTPОтвет = HTTP_Соединение.Получить(HTTPЗапрос);
	СтрJson = HTTPОтвет.ПолучитьТелоКакСтроку();
	
	ЧтениеJSON = Новый ЧтениеJSON;
	ЧтениеJSON.УстановитьСтроку(СтрJson);
	Результат = ПрочитатьJSON(ЧтениеJSON);
Показать
4. sancho86 1 16.11.15 22:58 Сейчас в теме
Что-то на JD.ru он не раскрывает дерево до цены
Оставьте свое сообщение