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

08.02.15

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
SFLoader
.epf 31,32Kb
157
157 Скачать (1 SM) Купить за 1 850 руб.

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

Что умеет:

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

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

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

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

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

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

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

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

См. также

Оптовая торговля Розничная торговля WEB-интеграция 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Платные (руб)

Онлайн-заказ - это решение для автоматизации процесса оформления заказов на сайте в торговых организациях. Продукт обеспечивает легкое взаимодействие между компанией и клиентами через веб-интерфейс, интегрированный с 1С:Предприятие. Система позволяет снизить операционные расходы, повысить лояльность клиентов и оптимизировать работу отдела продаж.

57600 руб.

26.11.2024    1235    1    1    

4

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

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    18355    20    22    

18

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

Интеграция 1С и Битрикс 24. Разработка имеет двухстороннюю синхронизацию 1С и Bitrix24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (платформа начиная с 8.3.23): 1С:Управление торговлей, 1С:Управление Нашей фирмой 3, 1С:Комплексная автоматизация 2, Объединенное решение: Модуль 1С:CRM 3 (3.0.21.3) +1С:ERP Управление предприятием 2. При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

7200 руб.

04.05.2021    20564    13    19    

18

WEB-интеграция Программист Бизнес-аналитик Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Оптовая торговля, дистрибуция, логистика ИТ-компания Платные (руб)

Модуль "Экспортер" — это расширение для 1С, предназначенное для автоматизации процессов выгрузки данных. Оно позволяет эффективно извлекать, преобразовывать и передавать данные из систем 1С в интеграционную платформу Spot2D. Подсистема упрощает настройку, снижает количество ручных операций и обеспечивает удобный контроль данных.

14400 руб.

20.12.2024    320    2    0    

5

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

Расширение значительно упрощает написание API на 1С. Веб программисты получают простой и понятный доступ к 1С. Описание API создаётся автоматически и представляется в виде удобном как для человека, так и для программной обработки.

24000 руб.

27.09.2024    2483    1    0    

3
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Mortiferus 363 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 4801 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 4801 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 он не раскрывает дерево до цены
Оставьте свое сообщение