Регулярное выражение

Dendi

Client
Регистрация
20.11.2018
Сообщения
164
Благодарностей
11
Баллы
18
Привет всем

Вот ссылка на объявление https://www.olx.kz/obyavlenie/sdam-1komnatnuyu-kvartiru-po-sutkam-chasam-nedelyam-IDgCVwM.html#0ecb43b640;promoted

Пытаюсь сделать парсер объявлений
Спарсить сколько комнат, от кого объявление и т д, Ниже скрин:

62130


Сейчас такая проблема, при попытке отсеить ненужные слова через конструктор регулярных выражений, выходит след результаты (2 на картинке)
Пытался взять больше текста до и после искомого текста, тогда результата вообще нет. Как решить?

62129
 

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 444
Благодарностей
1 287
Баллы
113
Привет всем

Вот ссылка на объявление https://www.olx.kz/obyavlenie/sdam-1komnatnuyu-kvartiru-po-sutkam-chasam-nedelyam-IDgCVwM.html#0ecb43b640;promoted

Пытаюсь сделать парсер объявлений
Спарсить сколько комнат, от кого объявление и т д, Ниже скрин:

Посмотреть вложение 62130

Сейчас такая проблема, при попытке отсеить ненужные слова через конструктор регулярных выражений, выходит след результаты (2 на картинке)
Пытался взять больше текста до и после искомого текста, тогда результата вообще нет. Как решить?

Посмотреть вложение 62129
Для данного варианта, советую использовать метод Xpath:
1. Вики статья
2. Хороший материал для изучения
 
  • Спасибо
Реакции: Dendi

dizney

Client
Регистрация
25.01.2014
Сообщения
51
Благодарностей
52
Баллы
18
Код:
(?<=<span\ class="offer-details__name">Объявление от</span>[\s]+<strong\ class="offer-details__value">).*?(?=</strong>)
Можно использовать такую регулярку. Вместо "Объявление от", можно вставить переменную, через которую будут подставляться "Все", "Количество комнат", "Этаж", "Срок аренды", "Тип строения", "Общая площадь", "Спальных мест", "Жилая площадь"
 

Dendi

Client
Регистрация
20.11.2018
Сообщения
164
Благодарностей
11
Баллы
18
Код:
(?<=<span\ class="offer-details__name">Объявление от</span>[\s]+<strong\ class="offer-details__value">).*?(?=</strong>)
Можно использовать такую регулярку. Вместо "Объявление от", можно вставить переменную, через которую будут подставляться "Все", "Количество комнат", "Этаж", "Срок аренды", "Тип строения", "Общая площадь", "Спальных мест", "Жилая площадь"
можно на примере? я просто по видосу учусь и пока еще зеленый.
и подскажи пожалуйста, как ты построил такую регулярку
(?<=<span\ class="offer-details__name">Объявление от</span>[\s]+<strong\ class="offer-details__value">).*?(?=</strong>)
когда я копирую код перед искомым текстом, получается следующее
(?<=<span\ class="offer-details__name">Объявление\ от</span><strong\ class="offer-details__value">).*(?=</strong>)
62136
 
Последнее редактирование:

Dendi

Client
Регистрация
20.11.2018
Сообщения
164
Благодарностей
11
Баллы
18
Для данного варианта, советую использовать метод Xpath:
1. Вики статья
2. Хороший материал для изучения
по Xpath не могу понять, как можно вытащить условно Этажность
//strong[@class='offer-details__value']

Судя по https://zennolab.com/wiki/ru:xpath
Надо след теги использовать, но не получается что то построить
62135

62134
 
Последнее редактирование:

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 444
Благодарностей
1 287
Баллы
113
по Xpath не могу понять, как можно вытащить условно Этажность
//strong[@class='offer-details__value']

Судя по https://zennolab.com/wiki/ru:xpath
Надо след теги использовать, но не получается что то построить
Посмотреть вложение 62135

Посмотреть вложение 62134
Уточните, пожалуйста, если вам нужен именно этаж, тогда вот (Атрибут: innertext):
Код:
//span[@class="offer-details__param"]//span[@class="offer-details__name" and text()="Этаж"]/following-sibling::strong
И запишите себе данные шпаргалки куда-то:
/parent::* # непосредственный родитель
/ancestor::* # все родители
/following-sibling::* # все следующие братья
/preceding-sibling::* # все предыдущие братья
/following::* # все следующие элементы кроме потомков
/preceding::* # все предыдущие элементы кроме предков
/descendant-or-self::* # контекстный узел и все его потомки
/ancestor-or-self::* # контекстный узел и все его предки
 
  • Спасибо
Реакции: Dendi

Dendi

Client
Регистрация
20.11.2018
Сообщения
164
Благодарностей
11
Баллы
18
Уточните, пожалуйста, если вам нужен именно этаж, тогда вот (Атрибут: innertext):
Код:
//span[@class="offer-details__param"]//span[@class="offer-details__name" and text()="Этаж"]/following-sibling::strong
И запишите себе данные шпаргалки куда-то:
откуда взяли strong? для following-sibling::
 

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 444
Благодарностей
1 287
Баллы
113
  • Спасибо
Реакции: Dendi

Dendi

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

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