Парсинг 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С:ITIL(ИТИЛ), 1С:ITILIUM, Управление IT-отделом 8 через интернет с любого устройства посредством браузера, увеличивая эффективность работы пользователей и снижая нагрузку на сервер. Быстрая инсталляция портала за пару часов, удобный и интуитивно понятный интерфейс и безопасность данных помогут упростить работу с порталом и ускорить выполнение бизнес-процессов компании.

128000 руб.

19.12.2023    2713    3    0    

10

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

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

60000 руб.

07.05.2019    34793    68    45    

27

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

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

57600 руб.

26.11.2024    2485    2    3    

5

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

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

12000 руб.

02.02.2021    18913    54    50    

31

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    916    4    2    

6

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

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

24000 руб.

27.09.2024    4212    3    2    

4

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

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

36000 руб.

03.08.2020    19142    22    22    

20

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

Обработка является альтернативой механизму, разработанному фирмой 1С и заполняющему реквизиты контрагента по ИНН или наименованию. Не требуется действующей подписки ИТС. Вызывается как внешняя дополнительная обработка, т.е. используется, непосредственно, из карточки контрагента. Заполнение по ИНН или наименованию реквизитов контрагента по данным сайта ФНС (egrul.nalog.ru) для БП 2.0, БП 3.0, БГУ 1.0, БГУ 2.0, УТ 10.3, УТ 11.x, КА 1.1, КА 2.x, УПП 1.x, ERP 2.x, УНФ 1.5, УНФ 1.6, УНФ 3.0, ДО 2.1

2400 руб.

28.04.2016    93211    193    217    

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