Помощь с регуляркой

booms1

Client
Регистрация
20.08.2019
Сообщения
135
Благодарностей
18
Баллы
18
Сейчас пишу парсер, и не понимаю где ошибка
Парсер на гет запросе, загружаю заголовки и содержимое, после чего пытаюсь регуляркой собрать ссылки
По итогу список ссылок пуст, хотя регурка подобрана правильно и в дом моделе все работает
В чём я ошибаюсь?
https://prnt.sc/pchjk0 Скриншот проекта
https://prnt.sc/pchjnv Скриншот гет запроса
https://prnt.sc/pchjsm Скриншот регулярки
(?<=<a\ itemprop="url"\ href="/).*?(?="\ onmouseup=") сама регулярка
Содержимое гет запроса https://drive.google.com/file/d/1EPkPyi9y5mmTeMhvELlcEZwJBaI8UNnY/view?usp=sharing
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 486
Благодарностей
8 692
Баллы
113
Сейчас пишу парсер, и не понимаю где ошибка
Парсер на гет запросе, загружаю заголовки и содержимое, после чего пытаюсь регуляркой собрать ссылки
По итогу список ссылок пуст, хотя регурка подобрана правильно и в дом моделе все работает
В чём я ошибаюсь?
https://prnt.sc/pchjk0 Скриншот проекта
https://prnt.sc/pchjnv Скриншот гет запроса
https://prnt.sc/pchjsm Скриншот регулярки
(?<=<a\ itemprop="url"\ href="/).*?(?="\ onmouseup=") сама регулярка
Содержимое гет запроса https://drive.google.com/file/d/1EPkPyi9y5mmTeMhvELlcEZwJBaI8UNnY/view?usp=sharing
Регулярку вы составляли и проверяли именно на DOM страницы? (из инстанса/браузера)
GET-запрос возвращает не DOM, а именно HTML-исходник и его верстка может знаительно отличаться от DOM.
Проверил по вашему файлу, регулярка не срабатывает на этом исходнике, нужно ее исправлять.
 
  • Спасибо
Реакции: booms1

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 600
Баллы
113
Код:
(?<=<a\s+itemprop="url"\s+href=").*?(?="\s+onmouseup=")
 
  • Спасибо
Реакции: Sergodjan и booms1

booms1

Client
Регистрация
20.08.2019
Сообщения
135
Благодарностей
18
Баллы
18

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 600
Баллы
113

booms1

Client
Регистрация
20.08.2019
Сообщения
135
Благодарностей
18
Баллы
18
Нужна помощь с регуляркой


<offer id="32473" available="true">
<url>https://citadele-online.ru/catalog/product/smesitel_dlya_kukhni_omoikiri_kagoshima_g_okag_g_35_zoloto/</url>
<price>29888</price>
<currencyId>RUB</currencyId>
<picture>https://citadele-online.ru//upload/resize_cache/iblock/e72/340_340_140cd750bba9870f18aada2478b24840a/e72f613f0c2576d8a6a99c68b023319f.jpg</picture>
<picture>https://citadele-online.ru//upload/resize_cache/iblock/ffd/340_340_140cd750bba9870f18aada2478b24840a/ffdb78457839ba05cedb7d24f8fb021c.jpg</picture>
<picture>https://citadele-online.ru//upload/resize_cache/iblock/789/56_56_140cd750bba9870f18aada2478b24840a/7897050257bd36fb93ffcc446c4813dc.jpg</picture>
<category1>Главная</category1>
<category2>Каталог</category2>
<category3>Смесители</category3>
<category4>Смесители для кухни</category4>
<name>Смеситель для кухни золото Omoikiri Kagoshima-G OKAG-G-35</name>
<vendorCode>162285</vendorCode>
<VendorSKU>OKAG-G-35</VendorSKU>
<brand>Omoikiri</brand>
<collection>Kagoshima</collection>
<country>Япония</country>
<garanty>5</garanty>
<document>https://citadele-online.ru//upload/iblock/159/159206e4713a4ef4f37c5d345d797ffe.pdf</document>
<komplektacia>В комплекте с душем (лейкой) без душа</komplektacia>
<komplektacia>Выдвижной излив нет</komplektacia>
<description> Подводка: гибкая, в оплетке из нержавеющей сталиМатериал: латуньЦвет: золотоКартридж: керамический ∅35 ммАэратор: пластикПодводка: гибкая, в оплетке из нержавеющей стали</li>Крепление: металлМатериал корпуса: латуньВысота, мм: 320</description>
<param name="Код товара">162285</param>
<param name="Бренд">Omoikiri</param>
<param name="Артикул">OKAG-G-35</param>
<param name="Серия">Kagoshima</param>
<param name="Страна происхождения бренда">Япония</param>
<param name="Гарантия (лет)">5</param>
<param name="Тип излива">поворотный</param>
<param name="Каскадный излив">нет</param>
<param name="Встроенные системы">нет</param>
<param name="Тип монтажа">на мойку; на столешницу</param>
<param name="Механизм">керамическая кран-букса</param>
<param name="Тип">смеситель</param>
<param name="Тип управления">двухвентильное</param>
<param name="Форма">округлая</param>
<param name="Дизайн">ретро</param>
<param name="Цвет">золото</param>
<param name="Материал">латунь</param>
<param name="Назначение">для кухонной мойки</param>
<param name="Скрытый монтаж">не предусмотрен</param>
<param name="Высота (см)">32</param>
<param name="Ширина (см)">19</param>
<param name="Длина излива (мм)">180</param>
<param name="Высота излива (мм)">261</param>
<param name="Количество монтажных отверстий">1</param>
</offer>




<offer id="32472" available="true">
<url>https://citadele-online.ru/catalog/product/smesitel_dlya_kukhni_omoikiri_nagano_pl_4994064_platina/</url>
<price>19988</price>
<currencyId>RUB</currencyId>
<picture>https://citadele-online.ru//upload/resize_cache/iblock/742/340_340_140cd750bba9870f18aada2478b24840a/74206ddd543b93b22af43ae84bb7a4c3.jpg</picture>
<picture>https://citadele-online.ru//upload/resize_cache/iblock/6af/340_340_140cd750bba9870f18aada2478b24840a/6af70cad6ad893fb696550a865022b2d.jpg</picture>
<category1>Главная</category1>
<category2>Каталог</category2>
<category3>Смесители</category3>
<category4>Смесители для кухни</category4>
<name>Смеситель для кухни платина Omoikiri Nagano-PL 4994064</name>
<vendorCode>161872</vendorCode>
<VendorSKU>4994064</VendorSKU>
<brand>Omoikiri</brand>
<collection>Nagano</collection>
<country>Япония</country>
<garanty>5 лет</garanty>
<document>https://citadele-online.ru//upload/iblock/7ec/7ec44370b2b8e0ed630bfdfb1b508a6d.pdf</document>
<komplektacia>Инструкция да</komplektacia>
<komplektacia>Набор креплений да</komplektacia>
<komplektacia>В комплекте с душем (лейкой) без душа</komplektacia>
<description> Подводка: гибкая, в оплетке из нержавеющей стали, полный комплект соединений для подключенияМатериал: латуньЦвет: платинаКартридж: керамический ∅35 ммАэратор: пластикПодводка: гибкая, в оплетке из нержавеющей стали, полный комплект соединений для подключения</li>Крепление: металлМатериал корпуса: латуньВысота, мм: 294</description>
<param name="Код товара">161872</param>
<param name="Бренд">Omoikiri</param>
<param name="Артикул">4994064</param>
<param name="Серия">Nagano</param>
<param name="Страна происхождения бренда">Япония</param>
<param name="Гарантия (лет)">5 лет</param>
<param name="Встроенный кран для питьевой воды">есть</param>
<param name="Режим душ излива">нет</param>
<param name="Отверстия для монтажа">1 отверстие</param>
<param name="Девиатор">нет</param>
<param name="Защита от обратного потока">нет</param>
<param name="Ограничение температуры">нет</param>
<param name="Тип излива">поворотный</param>
<param name="Каскадный излив">нет</param>
<param name="Встроенные системы">нет</param>
<param name="Тип монтажа">на мойку; на столешницу</param>
<param name="Встраиваемая система">нет</param>
<param name="Оснащение">крепления, аэратор, гибкая подводка</param>
<param name="Поверхность">глянцевая, матовая</param>
<param name="Механизм">керамический картридж</param>
<param name="Расположение рычага">сбоку</param>
<param name="Вращение излива">поворотный</param>
<param name="Стандарт подводки">1/2&quot;</param>
<param name="Тип">смеситель</param>
<param name="Тип управления">однорычажное</param>
<param name="Управление">рычажное</param>
<param name="Форма">округлая</param>
<param name="Дизайн">современный стиль</param>
<param name="Цвет">хром</param>
<param name="Материал">металл</param>
<param name="Назначение">для кухонной мойки</param>
<param name="Скрытый монтаж">не предусмотрен</param>
<param name="Форма излива">традиционная</param>
<param name="Высота (см)">29.4</param>
<param name="Ширина (см)">14.5</param>
<param name="Длина излива (мм)">206</param>
<param name="Высота излива (мм)">268</param>
<param name="Область применения">бытовая</param>
<param name="Тип подводки">гибкая</param>
<param name="Количество монтажных отверстий">1</param>
</offer>
<offer id="32474" available="true">
<url>https://citadele-online.ru/catalog/product/smesitel_dlya_kukhni_omoikiri_tottori_ab_4994009_antichnaya_latun/</url>
<price></price>
<currencyId>RUB</currencyId>
<name></name>
<vendorCode></vendorCode>
<VendorSKU>Артикул</VendorSKU>
<brand>Бренд</brand>
<collection>Серия</collection>
<country>Страна происхождения бренда</country>
<garanty>Гарантия (лет)</garanty>
</offer>
<offer id="32475" available="true">
<url>https://citadele-online.ru/catalog/product/smesitel_elghansa_kitchen_56a1767_3/</url>
<price></price>
<currencyId>RUB</currencyId>
<name></name>
<vendorCode></vendorCode>
<VendorSKU>Артикул</VendorSKU>
<brand>Бренд</brand>
<collection>Серия</collection>
<country>Страна происхождения бренда</country>
<garanty>Гарантия (лет)</garanty>
</offer>
<offer id="32476" available="true">
<url>https://citadele-online.ru/catalog/product/smesitel_elghansa_monica_5600219_white/</url>
<price></price>
<currencyId>RUB</currencyId>
<name></name>
<vendorCode></vendorCode>
<VendorSKU>Артикул</VendorSKU>
<brand>Бренд</brand>
<collection>Серия</collection>
<country>Страна происхождения бренда</country>
<garanty>Гарантия (лет)</garanty>
</offer>


Нужно найти все "пустые" совпадения, через регулярку <offer\ id="[\w\W]*?(?=<price></price>) захватывает и прайсы внутри которых есть значения, в чём проблема?


</offer>
<offer id="32474" available="true">
<url>https://citadele-online.ru/catalog/product/smesitel_dlya_kukhni_omoikiri_tottori_ab_4994009_antichnaya_latun/</url>
<price></price>
<currencyId>RUB</currencyId>
<name></name>
<vendorCode></vendorCode>
<VendorSKU>Артикул</VendorSKU>
<brand>Бренд</brand>
<collection>Серия</collection>
<country>Страна происхождения бренда</country>
<garanty>Гарантия (лет)</garanty>
</offer>
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)