【发布时间】:2017-02-10 16:50:53
【问题描述】:
我正在使用 Scrapy 构建一个简单的抓取工具,但在提取数据的某些部分时遇到问题。该网站包含大约 20 个以下代码块:
<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。更令人担忧的是,如果我只打印日期,它会打印 3 次相同的数据。我期待三个不同的数据,因为 html 中有三个独立的数据。
是
sel = Selector(text=response.body)
updates = sel.xpath("//div[@class='row result']")
隔离这些部分的正确代码?提取跨度的最佳方法是什么?
【问题讨论】: