Попробуйте xpath
//div/p[following::h2[contains(.,'Only until this node')]]
, чтобы получить желаемый контент из элементов html, пока он не достигнет элемента p
, содержащего этот текст Only until this node
.
Проверьте приведенный ниже пример:
from scrapy import Selector
htmldoc="""
<div>
<p>A</p>
<p>B</p>
<p>C</p>
<p>D</p>
<h2>Only until this node</h2>
<p>E</p>
<p>F</p>
<p>I should not get this</p>
<h2>Even though this node exists</h2>
<p>I should not even this</p>
</div>
"""
sel = Selector(text=htmldoc)
for item in sel.xpath("//div/p[following::h2[contains(.,'Only until this node')]]/text()").extract():
print(item)
Что он производит:
A
B
C
D