刮空字段

问题描述 投票:0回答:1

我需要提取所有值,包括表中的空字段,但问题是提取方法会跳过空字段。我如何收集那些空白的田地或用其他东西替换它们?

这是我对Scrapy shell的表达:

row = response.xpath('//*[@class="apexir_WORKSHEET_DATA"]//tr//td//text()').extract()  
web-scraping scrapy
1个回答
0
投票

你的xpath选择器在这里选择text()值:

'//*[@class="apexir_WORKSHEET_DATA"]//tr//td//text()'

你想要做的是选择td值并迭代它们:

items = []
rows = response.xpath('//*[@class="apexir_WORKSHEET_DATA"]//tr//td')
for row in rows:
    text = ''.join(row.xpath('.//text()').extract())
    items.append(text)

现在,即使没有文本,您的代码也会在项目列表中附加一个空字符串。不幸的是,单独使用xpath执行此操作是不可能的。

© www.soinside.com 2019 - 2024. All rights reserved.