Scrapy:遍历文档

Scrapy: traversing a document

这是我正在处理的文档的一部分的模型。我要做的是首先找到 Time 和 Cost 元素,然后从那里找到它们各自的值。我尝试了各种轴选择器,但没有任何进展。我不会直接转到时间和成本元素,我需要找到它们与其关联的 h4s 的关系。

<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