这是我正在使用的文档的一部分的模型。我想做的是首先找到时间和成本元素,然后从那里找到它们各自的值。我尝试过各种轴选择器,但一无所获。我不会直接转到“时间”和“成本”元素,我需要找到它们与其关联的 h4 的关系。
<ul class="events">
<li id="event-123456" class=eventItem>
<div class="details">
<h4>Time</h4>
<div>
<p>17:00</p>
</div>
<h4>Cost</h4>
<div>
<p>10.00</p>
</div>
</div>
</li>
<li id="event-678901" class=eventItem>
<div class="details">
<h4>Time</h4>
<div>
<p>21:00</p>
</div>
<h4>Cost</h4>
<div>
<p>20.00</p>
</div>
</div>
</li>
</ul>
这是解析器的骨架
def parse(self, response):
Events = response.xpath('//ul')
for event in Events:
item['cost'] = event.xpath(???)
item['time'] = event.xpath(???)
following-sibling
在这里会有帮助:
events = response.xpath('//ul[@class = "events"]/li')
for event in events:
item = MyItem()
item['cost'] = event.xpath(".//h4[. = 'Cost']/following-sibling::div/p/text()").extract_first()
item['time'] = event.xpath(".//h4[. = 'Time']/following-sibling::div/p/text()").extract_first()
yield item
我是一名优秀的程序员,十分优秀!