Пример парсинга web-страницы, поиск ссылки на картинку из страницы по атрибуту

04.08.15

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

На примере сайта brain.com.ua покажу, как можно получить ссылку на картинку из веб-страницы.

Скачать файл

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

Наименование По подписке [?] Купить один файл
СсылкаНаФотоПоАтрибуту.epf
.epf 7,00Kb
9
9 Скачать (1 SM) Купить за 1 850 руб.

Поступило задание на парсинг страницы сайта. Например, нам нужна ссылка на основное фото. Для начала, узнаем имя этого атрибута. Если вы используете браузер Мозилла (в других, по-другому), достаточно в открытой странице на элементе вызвать контекстное меню и выбрать пункт Inspect element:


После этого в появившимся окне спотрим, как называется текущий атрибут. В нашем случае, "large_picture_container":

Дальше пишем простенький код на примере нашего сайта:

Функция Парсинг(Ссылка)
	
	ЧтениеHTML = Новый ЧтениеHTML;
    ЧтениеHTML.ОткрытьФайл(Ссылка);
     
    ПостроительDOM = Новый ПостроительDOM;
    ДокументHTML = ПостроительDOM.Прочитать(ЧтениеHTML);
    
    ЭлементыDOM = ДокументHTML.ПолучитьЭлементыПоИмени("span");
	
	СсылкаВрем = "";
	Для Каждого ЭлементDOM Из ЭлементыDOM Цикл
		Если ЭлементDOM.ИмяКласса = "large_picture_container" Тогда
			Для каждого ДочУзл Из ЭлементDOM.ДочерниеУзлы Цикл
				Если ДочУзл.ИмяУзла = "img" Тогда
					СсылкаВрем = ДочУзл.Источник;
					Возврат (ЗначениеЗаполнено(СсылкаВрем), "http://brain.com.ua" + СсылкаВрем ,"");
				КонецЕсли;	
			КонецЦикла;
			СсылкаВрем = ЭлементDOM		
		КонецЕсли;
	КонецЦикла;
	
	Возврат "";
	
КонецФункции

Парсинг веб-страница картинка по атрибуту

См. также

WEB-интеграция Администрирование веб-серверов Платные (руб)

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

128000 руб.

19.12.2023    3032    5    0    

11

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

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

60000 руб.

07.05.2019    35170    69    45    

29

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

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

57600 руб.

26.11.2024    2770    2    3    

5

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    1066    7    2    

9

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

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

24000 руб.

27.09.2024    4728    4    2    

5

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

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

36000 руб.

03.08.2020    19290    23    22    

20

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

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

12000 руб.

02.02.2021    19052    54    50    

31
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Yashazz 4839 04.08.15 13:55 Сейчас в теме
Верно. Подобное действие является одним из множества кирпичиков, составляющих парсинг сайта. Только не очень понятно, зачем ради этого отдельную статью делать)
Ну и советую при не очень богатом разнообразии имён тегов использовать XPath, чтоб не промахнуться.
cool.vlad4; odineskin2; +2 Ответить
2. cool.vlad4 2 04.08.15 15:13 Сейчас в теме
(1) Yashazz, а я как в 1С делать xpath запросы к html , который с точки зрения xml может быть невалидным? (достроив до валидного, но есть ли готовый код?)
(0) в xpath это будет //img[@class='large_picture_container']/@src (можно еще не "=" а contain использовать , а если есть верояность , что тэг не всегда img , то вместо img : //*[@class='large_picture_container']/@src )
4. Yashazz 4839 06.08.15 13:16 Сейчас в теме
(2) cool.vlad4, знаешь, я внаглую нормализую узлы DOM, загоняю их копированием разными способами в xml и парсю, вроде прокатывает. Ни разу на невалидность не попадал, хотя, может, мало экспериментировал. Посмотри методы, работающие со всяким пересовыванием узлов туда-сюда.
cool.vlad4; +1 Ответить
3. MsDjuice 114 05.08.15 10:30 Сейчас в теме
(1) Yashazz, Отдельная статья для таких как я. Дали задания и не знаешь с чего начать. А начать хотя бы с этого.
alextalov; +1 Ответить
5. alex_4x 87 07.07.17 14:23 Сейчас в теме
Добрый день! Вижу вы занимаетесь скрещиванием ужей с ежами, а мне это тоже нужно.
Вопрос немного не про картинки. Задача такая - из 1С нужно получить все открытые в IE, Опере, Firefox'е, Хроме - странички. Для начала просто получить список страниц (их URL-ы). Не подскажите как это сделать? Спасибо!
Можно на примере хотя бы одного любого браузера, так как возможно для каждого браузера это будут разные механизмы.
Спасибо!
Оставьте свое сообщение