Я строю простой скребок с Scrapy, но у меня возникают проблемы с извлечением определенных частей данных. Сайт содержит около 20 из следующих блоков кода:Scrapy extracting text from div
<div class="row result">
<div class="updateCont date col-md-2 col-sm-2 col-xs-3">
<span>
<strong>Fri. 10 Feb</strong> <br />0:00 AM
</span>
</div>
<div class="updateCont eventIcon col-md-1 col-sm-1 col-xs-3">
<div class="icon ">
<i class="fa fa-update"></i>
</div>
</div>
<div class="updateCont event col-md-9 col-sm-8 col-xs-6">
<span>
The buyer has been notified of this update. <br />
<span class="inner department">
124
</span>
</span>
</div>
</div>
я сумел извлечь каждый из них с:
sel = Selector(text=response.body)
updates = sel.xpath("//div[@class='row result']")
теперь я хотел бы выделить дату и превратить его в datetime, а также строку события updateCont. Купите уведомление об этом обновлении.
Я пробовал:
for update in updates:
date = update.xpath('//span').extract()
print (len(date))
что приводит к 7. Я ожидал, что это будет 3. Более worringly, если я распечатать только датировать он печатает те же данные в три раза. Я ожидал три разных объема данных, поскольку в html есть три отдельных раздела.
ли
sel = Selector(text=response.body)
updates = sel.xpath("//div[@class='row result']")
правильный код, чтобы изолировать секции? Какой был бы лучший подход к извлечению пролетов?
Спасибо за что он работал. Единственная маленькая проблема теперь 'Fri. 10 февраля
0:00 AM 'будет извлекать только 0:00 AM, а не бит в сильном теге. –
Я все еще не получаю бит в сильном теге. Как только он будет работать полностью, я, конечно, соглашусь с ответом. –