scrapy,我想去除提取到csv文件中的空行
我正在从一个页面提取数据。当然,我还需要深入挖掘,但我现在还是卡在这个第一页。这是我的代码:
from scrapy.contrib.spiders import CrawlSpider
from scrapy.selector import HtmlXPathSelector
from street.items import HstreetItem
class MySpider(CrawlSpider):
name = "go-h"
allowed_domains = ["http://somedomain.com"]
start_urls = ["http://somedomain.com"]
def parse(self,response):
#response = response.replace(body=response.body.replace('\n', '')) # doesn't work
hxs = HtmlXPathSelector(response)
details = hxs.select('//tr')
items = []
#n = 0
for detail in details:
item = HondastreetItem()
item['url'] = "".join(detail.select('td[@class="Model_LineModel_odd"]/a/@href | td[@class="Model_LineModel_even"]/a/@href').extract()).strip()
item['model'] = "".join(detail.select('td[@class="Model_LineModel_odd"]/a/text() | td[@class="Model_LineModel_even"]/a/text()').extract())
item['year'] = "".join(detail.select('td[@class="Model_LineYear_odd"]/text() | td[@class="Model_LineYear_even"]/text()').extract())
items.append(item)
return items
这段代码运行得很好,它通过我的处理流程把数据提取到一个CSV文件里,效果也正如我所期望的那样:
cell 1 | cell2 | cell3
url | model | year
.
.
.
问题是,我的CSV文件里有很多空行。一开始有17行空行,然后在填充数据的行之间也有空行。我觉得是因为在我抓取的表格前面有一些表格,以及在抓取的表格里面有一些我不需要的行(比如分类名称)导致的。
我已经在这个问题上卡了24小时了 :( 我试过了很多类似问题的解决方案,但都没有用。
谢谢你的帮助!
1 个回答
4
我刚接触Python,来这里想了解一下scrapy。
根据我的理解,你可能是在添加空行。所以你可以在添加之前检查一下'item'是不是空的,比如说:
if not (item['url'] == "" and item['model'] == "" and item['year'] == ""):
items.append(item)
如果我理解错了问题,请忽略我。