scrapy,我正试图删除提取到csv文件的空行

x0fgdtte  于 2023-09-27  发布在  其他
关注(0)|答案(1)|浏览(100)

我正在从一个页面中提取数据。当然,我必须更深入,但我仍然停留在第一页。这是我的代码:

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行,然后在我的CSV文件填充行之间的空行。我认为爬行表前面的几个表和爬行表中我不需要的一些行(如类别名称)导致了这一点。在过去的24小时里,我一直在尝试通过类似的问题找到的所有解决方案,但没有一个对我有效。
谢谢你的帮助!

rqmkfv5c

rqmkfv5c1#

我是Python的新手,在这里尝试理解scrapy。
据我所知,你一定是在添加空行。所以你可以在append语句前检查'item'是否不为空,例如,

if not (item['url'] == "" and item['model'] == "" and item['year'] == ""):
    items.append(item)

如果我误解了这个问题,请忽略。

相关问题