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
这是我正在处理的文档的一部分的模型。我要做的是首先找到 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