scrapy保存为csv文件 再将csv导入excel方法,及导入excel时出错:"自文本导入 包含的数据无法放置在一个工作表中"的坑

今天从拉勾网爬取职位信息准备作数据分析,因为想用Excel做数据可视化,遂决定将爬取信息保存为csv文件,再导入excel中。

scrapy 自带的 exporters 类下的方法 CsvItemExporter 可以用来保存Item数据为csv文件。

scrapy.exporters.CsvItemExporter使用方法参看官方文档: Item Exporters

scrapy保存为csv文件 再将csv导入excel方法,及导入excel时出错:

class LgspiderPipeline(object):
    # 创建接收文件,初始化exporter属性,然后启动start_exporting(),接收Item
    def open_spider(self, spider):
        self.file = open("lagoudata13.csv", "wb")  # lagoudata13.csv为将要写入的文件名
        self.exporter = CsvItemExporter(self.file,
        fields_to_export=['positonId','city', "companyFullName", 'education','positionName','jobNature',
                          'job_detail','jobInfo','jobAttract','workYear','salary','CreateTime']) # fields_to_export 为Items字段列表
        self.exporter.start_exporting()

    def process_item(self, item, spider):
        self.exporter.export_item(item)
        return item

# 结束exporter的exporting,关闭文件
    def close_spider(self, spider):
        self.exporter.finish_exporting()
        self.file.close()
完了之后新建Excel文档,数据——>获取外部数据下的 自文本——>选上csv文件——>三步设置

scrapy保存为csv文件 再将csv导入excel方法,及导入excel时出错:

如果爬取的信息里有'context'文本,第二步文本识别符选上'',会将''里的内容当作整体不分割。

正常情况下来导入excel文件就成功了。

而我喜闻乐见的出现了下面的错误: 此文本文件包含的数据无法放置在一个工作表中

我总共不到1500行信息啊,只导入了一个表头。

发生这种情况原因是:爬取保存的csv文件中含有大量的无用换行符(具体原因我也不知道,如你知道,请不吝赐教)

而这种换行符在我用txt、editplus查看时均看不出来,最后用sublime打开时才看出:

scrapy保存为csv文件 再将csv导入excel方法,及导入excel时出错:


可以看到同一个文本上面存在大量空行,而下面文本则正常,复制下面部分文档做导入测试正常可说明这点。

最后利用ctrl+H 替换掉多余换行符,再导入到Excel中,一切正常。

一个坑让我装了三个版本的office,耗了我两个多小时,希望对你有所帮助,over!

你可能感兴趣的:(爬虫)