Lets say I have html:
<body>
<div class="items">
<span class="label">label1</span>
<div class="value">value1</div>
</div>
<div class="items">
<span class="label">label2</span>
<div class="value">
<a class="link">value2</a>
</div>
</div>
<div class="items">
<span class="label">label3</span>
<div class="value">
<a class="link">value3</a>
</div>
</div>
<div class="items">
<span class="label">label4</span>
<div class="value">value4</div>
</div>
</body>
Im trying to get text from <a class="link">
if possible or from <div class=value>
.
for result in response.xpath("//div[@class='items']"):
label = result.xpath(".//span[@class='label']//text()").extract_first()
# here Im trying use or operation to get
# a text if possible or div text
value = result.xpath(".//a[@class='link']//text()"
"|.//div[@class='value']//text()").get()
print(label, value)
Results:
label1 value1
label2
label3
label4 value4
This code assign only text from <div class='value'>
although <a class='link'>
exist.
What I need?
I would like to xpath code return a
text if possible in otherwise it should take div
text.