我需要提取所有值,包括表中的空字段,但问题是提取方法会跳过空字段。我如何收集那些空白的田地或用其他东西替换它们?
这是我对Scrapy shell的表达:
row = response.xpath('//*[@class="apexir_WORKSHEET_DATA"]//tr//td//text()').extract()
你的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执行此操作是不可能的。