@dimuska139
Backend developer

Как написать css-селектор «абзацы, идущие между двумя заголовками»?

Понимаю, что вопрос звучит странно, но мне это нужно для парсера Scrapy, так что добавить какие-то классы я самостоятельно к элементам не могу. Нужно выбрать все абзацы, идущие между двумя тегами h2. Как это правильно сделать? Если сделать что-то типа response.css('h2:contains("Рассказ") + p').get(), то выберется только первый абзац, идущий после заголовка h2 с текстом "Рассказ". Как выбрать все абзацы (их количество произвольное) до следующего h2, а не только первый? Привожу пример html:
<h2>Рассказ</h2>
<p>Привет, Вася!</p>
<p>Как дела?</p>
<h2>О чем рассказ</h2>
<p>Я поздоровался с Васей</p>

Вот мне нужно, грубо говоря, применить стиль только к вот этим абзацам:
<p>Привет, Вася!</p>
<p>Как дела?</p>
  • Вопрос задан
  • 136 просмотров
Решения вопроса 1
dom1n1k
@dom1n1k
Если абзацев немного, то можно попробовать такой костыль:
("h1 + p, h1 + p + p, h1 + p + p + p, h1 + p + p + p + p, h1 + p + p + p + p + p, ...")

Но вообще, "правильного" решения на чистом CSS тут нет.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы