scrapy -o csv格式输出的时候,发现字段/item/Field的顺序不是在items.py或者在scrapy中指定的顺序,如果后续有继续读取csv文件的时候,因为不是按指定顺序排列,很可能字段会搞错。 本文描述如何在输出csv的时候指定顺序字段。

  1. 在scrapy的spiders同层目录,新建my_project_csv_item_exporter.py文件内容如下(文件名可改,目录定死)
1
2
3
4
5
6
7
8
9
10
11
from scrapy.conf import settings
from scrapy.contrib.exporter import CsvItemExporter
class MyProjectCsvItemExporter(CsvItemExporter):
def __init__(self, *args, **kwargs):
delimiter = settings.get('CSV_DELIMITER', ',')
kwargs['delimiter'] = delimiter
fields_to_export = settings.get('FIELDS_TO_EXPORT', [])
if fields_to_export :
kwargs['fields_to_export'] = fields_to_export
super(
MyProjectCsvItemExporter, self).__init__(*args, **kwargs)
  1. 在同层目录,settings.py文件新增如下内容(指定item,field顺序)
1
2
3
4
5
6
7
8
9
FEED_EXPORTERS = {
'csv': 'my_project.my_project_csv_item_exporter.MyProjectCsvItemExporter',
} #这里假设你的project名字为my_project
FIELDS_TO_EXPORT = [
'id',
'name',
'email',
'address'
]
  1. 在同层目录,settings.py文件指定分隔符
1
CSV_DELIMITER = '\t'

全部设定完后,执行scrapy crawl spider -o spider.csv的时候,字段就按顺序来了

原文地址:http://www.aisun.org/2017/10/python+scrapy+item/

转载于:https://www.cnblogs.com/chuangshaogreat/p/7641445.html

scrapy指定item输出项顺序到csv相关推荐

  1. php mysql 输出csv_php使用指定编码导出mysql数据到csv文件的方法

    本文实例讲述了php使用指定编码导出mysql数据到csv文件的方法.分享给大家供大家参考.具体实现方法如下: <?php /* * PHP code to export MySQL data ...

  2. Scrapy爬取豆瓣图书详情存入CSV并导入MySQL

    目录 前言 一.新建爬虫工程 二.修改settings.py文件 三.编写items.py 四.编写pipelines.py 五.编写book.py 六.存储到MySQL 七.爬取结果 八.后言 前言 ...

  3. Mybatis指定日志输出实现

    10             Mybatis指定日志输出实现 在程序开发过程中,为了调试方便.了解程序的运行过程,进行必要的日志输出总是免不了的.对于使用Mybatis而言,我们常见的需求是希望可以在 ...

  4. java 字符串指定编码输出_java对字符的编码处理

    在java应用软件中,会有多处涉及到字符集编码,有些地方需要进行正确的设置,有些地方需要进行一定程度的处理. 1. getBytes(charset) 这是java字符串处理的一个标准函数,其作用是将 ...

  5. Scrapy爬取贝壳网并存入csv

    一.分析目标站点 本文以爬取宁波地区的房产信息为例 1.宁波整个市页面 宁波地区的网址都是以上面的格式,再加上各个区的拼音,即可进入各个区的网页. 各个区的名称: areas = {'海曙区': 'h ...

  6. PHP 读取数据库内容并以二维数组按指定列输出实例

    最新PHP 读取数据库内容并以二维数组按指定列输出实例 以下是三零网为大家整理的最新PHP 读取数据库内容并以二维数组按指定列输出实例的文章,希望大家能够喜欢! <?php $host = &q ...

  7. 【数据挖掘】关联规则挖掘 Apriori 算法 ( 关联规则简介 | 数据集 与 事物 Transaction 概念 | 项 Item 概念 | 项集 Item Set | 频繁项集 | 示例解析 )

    文章目录 一. 关联规则挖掘简介 二. 数据集 与 事物 ( Transaction ) 概念 三.项 ( Item ) 概念 四.项集 ( Item Set ) 概念 五.频繁项集 六.数据集.事物 ...

  8. 如何使用scrapy的item来封装数据

    引言 在第一篇如何写第一个scrapy里面,我们是使用字典来对数据进行传递,使用字典有以下缺点. 无法直观地了解数据中包含哪些字段 缺乏对字段名字的检测 不便于携带元数据 为了克服上述问题,我们可以使 ...

  9. javascript两行代码按指定格式输出日期时间

    javascript两行代码按指定格式输出日期时间,具体看代码: function date2str(x,y) {var z ={y:x.getFullYear(),M:x.getMonth()+1, ...

最新文章

  1. Activity和Service通信 Bind方式
  2. 字符与编码(编码转换)
  3. opencv 作图函数
  4. EJB的beans们
  5. 屏幕监控中捕获鼠标位置信息
  6. PostgreSQL中 AnyElement AnyArray AnynonArray的区别与联系
  7. mysql 教学方法总结_MySQL教程之MySQL知识总结
  8. 金融计算器--麦考利久期(Macaulay_Duration)
  9. 台州学院计算机翁黄格,中国高校计算机大赛-团体程序设计天梯赛全国总决赛获奖.DOC...
  10. GitHub博客搭建
  11. crunch 不指定字典破解wpa加密
  12. ansible之when条件语法、处理任务失败、jinja2模板和项目管理
  13. php redis 传递闭包,有向图传递闭包 - osc_wff1160a的个人空间 - OSCHINA - 中文开源技术交流社区...
  14. 清茶一杯-手机、电子阅读器和生活
  15. 【绘制】HTML5 Canvas绘画画板小项目:可编辑控制的贝塞尔曲线(可控制锚点和控制点的位置)
  16. 机器人底盘的核心技术及应用案例
  17. 软件测试面试题(带答案)
  18. 翻译Deep Learning and the Game of Go(10)第七章:从数据中学习:一个深度学习AI
  19. Kubernetes 笔记(06)— 搭建多节点集群、kubeadm 安装 master/worker/console/flannel 网络插件
  20. java基于微信小程序旅游管理系统 uniapp 小程序

热门文章

  1. vue+element 在ie和360浏览器的兼容问题
  2. (matlab) figure中画多条线,并对每条线依次加标注
  3. Python并发编程之进程间通信
  4. 知乎:月薪2~3万,码农怎样度过一天
  5. html代码中的空格怎么删除,HTML – 如何删除页脚之间的空格
  6. 关于除去WordPress页脚底部的自带标语
  7. 2017CCPC中南地区赛暨湘潭大学邀请赛总结
  8. 最后防线:三款开源HIDS应用对比评估
  9. 【软考笔记】1. 计算机原理与体系结构
  10. 女孩,既要懂得暧昧,又要懂得拒绝 【20cn 依依】