Подпишись и читай
самые интересные
статьи первым!

Формат yml парсер данных в html. Парсер контента: Внедрение парсинга XML(YML) файлов

(PECL yaml >= 0.4.0)

yaml_parse — Разбирает поток YAML

Описание

yaml_parse (string $input [, int $pos = 0 [, int &$ndocs [, array $callbacks = NULL ]]]) : mixed

Конвертирует весь поток YAML или его часть и записывает в переменную.

Список параметров

Строка для парсинга как поток YAML.

Документ для разбора (-1 для всех документов, 0 для первого документа, ...).

Если ndocs найден, тогда он будет заменен на количество документов в потоке YAML.

Возвращаемые значения

Возвращает значение, закодированое в input , в соответствующем типе PHP или FALSE в случае возникновения ошибки. Если параметр pos равен -1 , будет возвращен массив, содержащий по одной записи для каждого документа, найденого в потоке.

Примеры

Пример #1 Пример использования yaml_parse()

$yaml = <<---
invoice: 34843
date: "2001-01-23"
bill-to: &id001
given: Chris
family: Dumars
address:
lines: |-
458 Walkman Dr.
Suite #292
city: Royal Oak
state: MI
postal: 48046
site: zxibit.esy.es
ship-to: *id001
product:
- sku: BL394D
quantity: 4
description: Basketball
price: 450
- sku: BL4438H
quantity: 1
description: Super Hoop
price: 2392
tax: 251.420000
total: 4443.520000
comments: Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338.
...
EOD;

$parsed = yaml_parse ($yaml );
var_dump ($parsed );
?>

Результатом выполнения данного примера будет что-то подобное:

array(8) { ["invoice"]=> int(34843) ["date"]=> string(10) "2001-01-23" ["bill-to"]=> &array(3) { ["given"]=> string(5) "Chris" ["family"]=> string(6) "Dumars" ["address"]=> array(4) { ["lines"]=> string(34) "458 Walkman Dr. Suite #292" ["city"]=> string(9) "Royal Oak" ["state"]=> string(2) "MI" ["postal"]=> int(48046) } } ["ship-to"]=> &array(3) { ["given"]=> string(5) "Chris" ["family"]=> string(6) "Dumars" ["address"]=> array(4) { ["lines"]=> string(34) "458 Walkman Dr. Suite #292" ["city"]=> string(9) "Royal Oak" ["state"]=> string(2) "MI" ["postal"]=> int(48046) } } ["product"]=> array(2) { => array(4) { ["sku"]=> string(6) "BL394D" ["quantity"]=> int(4) ["description"]=> string(10) "Basketball" ["price"]=> int(450) } => array(4) { ["sku"]=> string(7) "BL4438H" ["quantity"]=> int(1) ["description"]=> string(10) "Super Hoop" ["price"]=> int(2392) } } ["tax"]=> float(251.42) ["total"]=> float(4443.52) ["comments"]=> string(68) "Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338." }

Станислав Шашалевич

Парсер контента – наше глобальное и передовое решение, которое позволяет парсить каталоги, страницы и rss ленты. Казалось бы, что еще можно требовать от данного модуля?! Но не тут-то было. Наши клиенты не стоят на месте и постоянно требуют от нас развития решения. А мы этому только рады. И вот теперь мы хотим сообщить, что удовлетворили еще одну очень важную просьбу наших клиентов: Парсинг XML файлов. Теперь Парсер может работать не только с rss, page, catalog типами данных, но и с xml . И что самое главное: внедрение такого полезного функционала никак не повлияет на стоимость решения. Цена решения в 14 990 руб. останется неизменной.

Парсинг xml файлов позволяет парсить и такой полезный для интернет-магазинов формат, как YML файлы. Именно поэтому xml парсер по умолчанию настроен для парсинга yml выдачи. Но тут же у наших клиентов может возникнуть вопрос: А чем же ваша загрузка YML файлов отличается от аналогичных решений в Маркетплейсе. Вот список некоторых преимуществ нашего модуля над аналогами:

  • возможность конвертации и пересчета валют
  • возможность изменения цен
  • возможность редактирования названия и свойств товаров
  • возможность указания свойств по умолчанию
  • возможность авторизации на стороннем сервере
  • выполнять различные действия над элементами, которые отсутствуют в текущей выгрузке(ничего не делать, удалить, деактивировать)
  • автоматический перевод текста
  • возможность периодического запуска (агенты, крон)
  • возможность указания полей и свойств для обновления
  • возможность использования прокси-сервера
Если сравнивать парсинг xml с catalog , то парсинг xml уже на первый взгляд проще: меньше вкладок, полей и другой информации. Скорость загрузки информации тоже быстрее, так как отсутствует множество тяжелых запросов на сторонние сайты.

Суть парсинга осталась аналогичная: обработка xml файла идет по селекторам и атрибутам. Так что, если вы уже настраивали парсер catalog , то настройка парсера нового типа для Вас пройдет просто и легко.

А теперь давайте подробнее рассмотри функциональность нового типа данных:

Вкладка Парсер:

Тип парсера – соответственно и есть тип парсера: rss, page, catalog, xml

Режим парсера – режим, в котором работает парсер. Существует два режима работы: debug и work. По умолчанию для отладки используется debug режим. Именно в этом режиме необходимо настраивать парсер. В debug режиме осуществляется парсинг первых 30 элементов XML файла.

Стоит отметить, что, если вы используете модуль «Парсер контента» в триал версии, то парсер работает только в дебаг режиме.

Дополнительные урлы XML файлов - вы можете также включить в выгрузку и другие урлы xml файлов. Для этого просто укажите их с новой строки.

ID инфоблока-каталога – инфоблок, в который будет осуществляться загрузка разделов и товаров.

ID раздела – раздел инфоблока, в который будет осуществляться загрузка разделов и товаров.

Количество товаров, выгружаемых за один шаг парсера – количество товаров, который парсер обрабатывает за один шаг. По умолчанию 300

Шаг парсера – понятие, которое имеет место при ручном режиме запуска парсера. В этом случае каждый шаг происходит отключение и новое подключение к каналу выгрузки. Варьируйте это значение в зависимости от возможностей вашего хостинга. Если парсер работает от агента(крон), то шаг парсера игнорируется, и выгрузка осуществляется одним запросом.

Активен, Сортировка, Название, Время последнего запуска – интуитивно понятные поля и в комментариях не нуждаются.

Кодировка - кодировка xml файла. Устаревшее поле. На данный момент кодировка определяется автоматически, но, если возникают какие-то проблемы с кодировкой, то рекомендуется указать вручную.

Вкладка Основные настройки - Категории

Пример XML файла для категорий:

Селектор-атрибут названия категории – указывается путь к названию категории. Если пусто, то название берется из значения самой категории

Селектор-атрибут, содержащий id категории – путь к id категории.

Селектор-атрибут, содержащий id родительской категории – для организации вложенности разделов необходимо указать пусть к значению родительского id категории.

Вкладка Основные настройки - Товары

Пример XML файла для товаров:

Селектор конкретного товара – путь к контейнеру конкретного товара

Селектор-атрибут, содержащий id товара – путь к id товара

Селектор-атрибут названия товара – путь к наименованию товара

Селектор-атрибут цены – контейнер, содержащий значение цены товара

Селектор-атрибут описания – содержит описание товара

Селектор-атрибут превью картинки – путь к картинке

Селектор-атрибут детальной картинки – путь к картинке

Вкладка Свойства

Свойство доп. картинок – если есть доп. картинки, то необходимо указать поля, в которые будет осуществляться выгрузка картинок.

Селектор-атрибут перечисления доп. картинок – указывается селектор и атрибут доп. картинок. Пример picture. Указывается относительно селектора товара.

Значения свойств по умолчанию – можно указать значения свойств, которые будут заноситься по умолчанию автоматически при создании товаров

Парсинг по селектору – вы можете указать конкретный селектор свойства, который находится внутри селектора товара в xml. Например: vendor, barcode

Удалять символы – также вы можете удалять лишние символы в свойствах(единицы измерения и прочее)

Парсинг свойств и автоматическое создание - позволяет автоматически создавать, заполнять и обновлять свойства, которые идут списком в xml файле.

Уникализация свойств в данном случае идет по наименованию.

Автоматическое создание свойств – если галочка отмечена, то, в случае отсутствия свойства, оно будет создавать. Если свойство уже есть

Селектор-атрибут перечисления свойств – общий селектор, в котором находятся информация о свойстве

Селектор-атрибут названия свойства – путь расположения названия свойства. Напоминаем, что это важный параметр, так как уникализация в данном случае идет именно по этому параметру.

Селектор-атрибут значения свойства – путь к значению свойства. Если ничего не задано, то значение берется непосредственно из селектора свойства

Выберите тип создаваемых свойств – если свойства не создавались, то они будут созданы. Необходимо выбрать тип новых свойств из значений: Список или Строка.

Удалять символы – позволяет удалять лишние символы из свойств.

Добавление/удаление символов полей и свойств – функционал, позволяющий добавлять и удалять символы и названия товара, а также у его свойств.

Вкладки Торговый каталог, Дополнительные настройки, Обновления/уникальность, Логи, Видео-инструкци идентичны парсеру типа catalog . Поэтому подробно их рассматривать не будем.

Вкладка Торговый Каталог

Вкладка позволяет гибко работать с ценами:

Указывать параметры цены и валюты

Конвертировать валюту

Изменять цены

Округлять цены

Вкладка Дополнительные настройки:

Вкладка Обновление/Уникальность:

Вкладка позволяет задать параметры уникализации, а также настроить обновление полей товаров.

1. В списке товаров нажмите "Выгрузить"

После загрузки товаров на парсер, находясь на странице со списком товаров, нажмите кнопку "Выгрузить".

2. Задайте настройки формата

В появившемся окне выберите формат "Яндекс.Маркет (YML)" и задайте настройки формата: как выгружать характеристики и разделять свойства.

Подробное описание каждой настройки вы можете найти ниже на этой странице.

3. Выгрузка запущена

Появится индикатор выгрузки товаров. Если не хотите ждать, вы можете выключить компьютер или закрыть браузер — выгрузка продолжится независимо от вас.

Что такое YML?

YML (Yandex Market Language) - это стандарт, разработанный Яндексом для принятия и размещения информации в базе данных Яндекс.Маркета. YML основан на стандарте XML.

Настройки формата:

Формировать offer id из — позволяет выбрать способ формирования атрибута id у тега offer, определяющего ID товарного предложения.

Разделять мультисвойства — позволяет выбрать способ разделения выбираемых свойств (Размеры, Цвета и т.п.): либо на основе повторяющегося тега param, либо на основе разбиения предложения на отдельные товары на group_id, согласно спецификации YML.

Товары не в наличии — можно задать как будут отображаться товары "Не в наличии" в маркете: Под заказ, т.е. с возможностью заказать или полностью не в наличии.

Общие настройки:

Выгружать товары — позволяет выбрать какие товары выгружать по признаку "Наличие" на сайте поставщика.

Порядок выгрузки товаров — позволяет выбрать порядок выгрузки товаров и установить выгрузку задом наперед при желании.

Разрешить HTML разметку в полях товара — разрешает или запрещает HTML-разметку в полях товара. Очень редко используется интернет-магазинами.

Выгрузка изображений — позволяет изменить число или способ выгрузки изображений.

Выгрузка характеристик — позволяет выгрузить свойства товаров (цвета, размеры и пр.) отдельными полями в файле или просто добавить к общему описанию товара. При добавлении к описанию сами колонки остаются. Выбирается в зависимости от возможностей вашего интернет-магазина или сайта СП.

Разбить на несколько файлов — позволяет разбить выгрузку на несколько файлов: по категориям или по брендам.

Нашли ошибку в выгрузке в этот формат?

Если вы обнаружили ошибку в формате выгрузки Яндекс.Маркет (YML), пожалуйста, сообщите нам на или в чат на сайте. Мы постараемся исправить выгрузку как можно скорее.

Общая оценка: Всего отзывов: 76

Очень полезный модуль

С первого раза тяжеловат в самостоятельной настройке, так что лучше сразу обратиться за помощью в поддержку.
Аналогов в маркетплейсе нет. Из наиболее важных преимуществ – очень большой функционал и скорость парсинга.
Отдельно хочется отметить работу сотрудника техподдержки Ирины Дерюжиной, ее оперативность и компетентность в решении возникавших вопросов.

Про модуль и техподдержку

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

Кроме этого модуля, я ещё покупал у них два других, по ним тоже задавал вопросы в техподдержку, могу сказать что их помощь одна из лучших. Можно сказать что люди заинтересованы в решении твоей проблемы и хотят её решать. Рекомендую!

Отличная техподдержка!

Могу с уверенностью сказать, что техподдержка очень хорошая! Сайты-доноры все разные и действительно мало шансов настроить парсера самим, но нужно учится. Благодаря техподдержке уже много чего понял, сразу вообще был на сайте, как в темном лесу) Сам парсер мне нравится, пробовал работать с datacol - много волокиты с файлами. Сотбит помогли настроить и спарсить уже два сайта-донора. Двигаемся дальше. Спасибо нашему менеджеру - Сотруднику поддержки: Алине Ващилиной!

Отличный парсер, а тех.поддержка еще лучше)

Первый парсер настроили мне очень быстро, практически мгновенно. Именно то, что мне было нужно. После этого многое стало понятно даже без обучающих роликов. Терпеливо ответили на все мои многочисленные вопросы. А главное, благодаря парсеру за 20 минут удалось сделать то, на что я потратила бы по меньшей мере 2 недели кропотливой работы с ручным заполнением. Я очень довольна. Спасибо.

Спасибо за помощь!

Попались не стандартные сайты для парсинга - без каталога и страниц навигации вообще. ТП помогла настроить, очень благодарна!
Было бы хорошо, если бы были примеры настройки таких сайтов в видеоинструкциях)

Отличный модуль!

Отличный модуль! Пользуюсь уже не первый год, так же всегда рекомендую данный модуль своим клиентам, все довольны. Отдельная благодарность техподдержке, всегда помогают и не затягивают с ответами.

Отличный модуль для парсинга

Пользуюсь модулем второй год все задачи по парсингу выполняет на отлично!!! Все проблемы по настройке тех поддержка всегда подсказывает без проволочек, хочу отдельно поблагодарить Ирину Дерюжину из тех поддержки.

Действительно, всё мрачно)

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

Плюсы. Если парсить товары с сайтов-доноров, вопросов нет.

Минусы. Парсинг из файлов (csv) с проблемами. А к сожалению, основная масса поставщиков дает свои базы именно в файлах. Конкретика:

1) Парсер не позволяет сопоставить разделы из файла выгрузки с уже созданными разделами в каталоге. Сначала мы думали, что это ошибка, но в поддержке нам ответили, что так и задумано: "Парсер ищет совпадающие разделы либо по названию, либо по ID и если не будет полного 100%-го соответствия по одному из критериев парсер создаст новый раздел."

Это очень неудобно, т.к. названия разделов практически никогда не совпадают и модуль становится практически бесполезен.

2) В настройках csv-парсера в подсказке к параметру "Индекс поля, содержащего названия товара" указано, что "Если необходимо составить наименование из нескольких частей, то укажите индексы полей через ",". Например: 0, 1, 5". На деле, если так сделать, то для каждого обработанного парсером товара показываются 2 ошибки:
1. Индекс наименования торгового предложения неверен или пуст.
2. - Не введено название. Обязательное поле "Символьный код" не заполнено.

3) В доп. картинках нельзя выгрузить изображения, если ссылки на них прописаны в разных полях файла. Парсер предполагает только тот вариант, когда картинки указаны через запятую/другой разделитель в одном поле, что является довольно редким явлением.

Действительно незаменимый модуль

При запуске нового интернет-магазина добавить десятки тысяч товаров с характеристиками и картинками непосильная задача. Именно здесь и нужно это решение от Сотбит, которое сэкономит вам нервы и время. Контент-менеджеры конкурентов не зря ведь старались, правда?)
С настройкой парсера мучались долго, не скрою. Без техподдержки, не имея знаний в программировании и ничего не понимая в теме, будут сложности с настройкой (справедливости ради отмечу, что сложности возникают чаще с мудреными сайтами). Сейчас мы уже вплотную приблизились к запуску нашего нового проекта, поэтому хотели бы поблагодарить Сотбит за отличное решение.
Резюмируя, расскажу о плюсах и минусах.
Минусы:
- Относительно сложно настроить парсер без помощи людям, не имеющими представления о том, как это работает.
- Провозиться с настройкой можно дольше, чем вы планировали.
Плюсы:
- Решение реально работает
- Невысокая цена за экономию сил и средств
- Отличная техподдержка - быстро отвечают, реально заинтересованы помочь. Спасибо специалисту техподдержки Игорю Ковальчуку: крайне редко сегодня можно встретить людей, настолько фанатично отдающихся работе. Был бы его начальником, выписал бы премию.

Три месяца возни, проблема не решена до сих пор

После покупки модуля сайт начал стремительный рост в размерах (пришлось в несколько раз увеличить характеристики сервера) в результате чего, через некоторое время отвалилась система резервного копирования и рухнула база данных, это доставило немало проблем, три дня наш программист восстанавливал сайт. На данный момент около 30 гб размер директории сайта - это очень много. бекапить такой размер нереально в автоматическом режиме каждую ночь. и 30 гб - это без учета локальных бекапов, которые лежат в директории сайта, а вместе с ними 56 гб. Причина такого роста оказалась в том, что парсер ежедневно добавлял дубли изображений в папку upload и она разрослась до невероятных размеров (хотя все парсеры, которые у нас работали в автоматическом режиме, настроены на обновление цен и наличия от поставщика, картинки они не должны были трогать вообще). Соответственно встал вопрос очистки папки от дублей изображений, до сих пор проблема не решена, После высказанных мной намерений написать отзыв, сотрудник тех. поддержки обещал связаться по телефону в 10:30 (в какой день не уточнил, прошло уже 4 дня) ни ответа ни привета.
Моё обращение № 9169 создано 29.11.2018 г., напомню что сегодня 21.02.2019 г.

Здравствуйте, Александр! Спасибо за отзыв.

Как Вы знаете, Ваша проблема решена еще несколько месяцев назад на тестовом сайте. Осталось только перенести все изменения на Ваш рабочий сервер. Но, к сожалению, Вы до сих пор не предоставили нам доступ к нему. Именно с этим связано то, что мы только сейчас, спустя несколько месяцев, отвечаем на Ваш отзыв.

Очень надеемся, что Вы все же предоставите нам доступы к серверу, чтобы мы Ваш вопрос окончательно закрыли. И тогда Вы сможете с удовольствием исправить свой отрицательный отзыв на положительный.

Александр, ждем от Вас обратной связи!

Включайся в дискуссию
Читайте также
Перспективы создания и раскрутки блога в жж
Как узнать свой тариф на Велкоме (velcom)?
Восклицательный знак при подключении по Wi-Fi на Android (как исправить) Что означает треугольник на экране телефона вверху