2–3 минуты
Продолжаем тему регулярок, которых многие боятся ) Пред дальнейшим прочтением рекомендую ознакомиться с прошлым материалом.
1. Получаем ссылку на видео с вставки ютуб. Видео имеет обычно такой вид:
<iframe src=»https://www.youtube.com/embed/xxxxxxxx» width=»560″ height=»315″ frameborder=»0″ allowfullscreen=»allowfullscreen»></iframe>
Где xxxxxxxx код видео. Чтобы его получить используем:
<iframe[^<>]*?src=[‘»]([^<>]*?)[‘»]
Получаем 1 группу. В результате получим https://www.youtube.com/embed/xxxxxxxx
Если на странице не один тег iframe тогда подойдет такой код
<iframe[^<>]*?src=[‘»]([^<>]*?youtu[^<>]*?)[‘»]
2. Универсальный способ получить основную картинку для статьи или товара
Заключается в том, что многие современные сайты используют метатег og:image для задания картинки, которая будет показана, если ссылку на страницу добавят в соцсеть. Полностью метатег выглядит так:
<meta property=»og:image» content=»http://site.com/images/image.jpg»/>
Чтобы убедится, что картинка есть, проверьте исходный код страницы. Проще всего это сделать в вашем браузере, комбинацией Ctrl+U или просмотрев в селекторе.
Чтобы получить картинку используем:
<meta[^<>]*?og:image[‘»][^<>]*?content=[‘»]([^<>]*?)[‘»]
Получаем 1 группу. В результате получим http://site.com/images/image.jpg
3. Получаем url товара для следующего занесения в наш интеренет-магазин
При парсинге товаров часто нужно и собрать url именно товара без сайта и категорий. Например
http://site.com/shop/category/product-01
Нам нужно получить «product-01». Для этого устанавливаем в Датакол «Тип поля» — «Спец поле». И далее во вкладке «Спец значения» — «URL» (оно уже будет выбрано по умолчанию).
И добавляем одну замену:
.*?/ — > пусто
Если в урл есть завершающий слеш «/» тогда делаем 2 замены:
/$ -> пусто
.*?/ — > пусто
4. Удаляем стили, классы в HTML тегах
Эта регулярка может помочь Вам при сохранении описания, где зачастую нужно сохранить теги, но вот часто в них присутствуют не нужные нам стили или классы. Чтобы их убрать используем следующие примеры:
<([a-z\d]{1,6})\ [^<>]*?> -> <$1>
Это универсальный метод, но будьте осторожны почистит все что внутри. Если нужно чистить какой-то конкретный тег, тогда так:
<div[^<>]*?> -> <div>