scrapy指定item输出项顺序到csv
scrapy -o csv格式输出的时候,发现字段/item/Field的顺序不是在items.py或者在scrapy中指定的顺序,如果后续有继续读取csv文件的时候,因为不是按指定顺序排列,很可能字段会搞错。 本文描述如何在输出csv的时候指定顺序字段。
- 在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)
|
- 在同层目录,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'
]
|
- 在同层目录,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相关推荐
- php mysql 输出csv_php使用指定编码导出mysql数据到csv文件的方法
本文实例讲述了php使用指定编码导出mysql数据到csv文件的方法.分享给大家供大家参考.具体实现方法如下: <?php /* * PHP code to export MySQL data ...
- Scrapy爬取豆瓣图书详情存入CSV并导入MySQL
目录 前言 一.新建爬虫工程 二.修改settings.py文件 三.编写items.py 四.编写pipelines.py 五.编写book.py 六.存储到MySQL 七.爬取结果 八.后言 前言 ...
- Mybatis指定日志输出实现
10 Mybatis指定日志输出实现 在程序开发过程中,为了调试方便.了解程序的运行过程,进行必要的日志输出总是免不了的.对于使用Mybatis而言,我们常见的需求是希望可以在 ...
- java 字符串指定编码输出_java对字符的编码处理
在java应用软件中,会有多处涉及到字符集编码,有些地方需要进行正确的设置,有些地方需要进行一定程度的处理. 1. getBytes(charset) 这是java字符串处理的一个标准函数,其作用是将 ...
- Scrapy爬取贝壳网并存入csv
一.分析目标站点 本文以爬取宁波地区的房产信息为例 1.宁波整个市页面 宁波地区的网址都是以上面的格式,再加上各个区的拼音,即可进入各个区的网页. 各个区的名称: areas = {'海曙区': 'h ...
- PHP 读取数据库内容并以二维数组按指定列输出实例
最新PHP 读取数据库内容并以二维数组按指定列输出实例 以下是三零网为大家整理的最新PHP 读取数据库内容并以二维数组按指定列输出实例的文章,希望大家能够喜欢! <?php $host = &q ...
- 【数据挖掘】关联规则挖掘 Apriori 算法 ( 关联规则简介 | 数据集 与 事物 Transaction 概念 | 项 Item 概念 | 项集 Item Set | 频繁项集 | 示例解析 )
文章目录 一. 关联规则挖掘简介 二. 数据集 与 事物 ( Transaction ) 概念 三.项 ( Item ) 概念 四.项集 ( Item Set ) 概念 五.频繁项集 六.数据集.事物 ...
- 如何使用scrapy的item来封装数据
引言 在第一篇如何写第一个scrapy里面,我们是使用字典来对数据进行传递,使用字典有以下缺点. 无法直观地了解数据中包含哪些字段 缺乏对字段名字的检测 不便于携带元数据 为了克服上述问题,我们可以使 ...
- javascript两行代码按指定格式输出日期时间
javascript两行代码按指定格式输出日期时间,具体看代码: function date2str(x,y) {var z ={y:x.getFullYear(),M:x.getMonth()+1, ...
最新文章
- Activity和Service通信 Bind方式
- 字符与编码(编码转换)
- opencv 作图函数
- EJB的beans们
- 屏幕监控中捕获鼠标位置信息
- PostgreSQL中 AnyElement AnyArray AnynonArray的区别与联系
- mysql 教学方法总结_MySQL教程之MySQL知识总结
- 金融计算器--麦考利久期(Macaulay_Duration)
- 台州学院计算机翁黄格,中国高校计算机大赛-团体程序设计天梯赛全国总决赛获奖.DOC...
- GitHub博客搭建
- crunch 不指定字典破解wpa加密
- ansible之when条件语法、处理任务失败、jinja2模板和项目管理
- php redis 传递闭包,有向图传递闭包 - osc_wff1160a的个人空间 - OSCHINA - 中文开源技术交流社区...
- 清茶一杯-手机、电子阅读器和生活
- 【绘制】HTML5 Canvas绘画画板小项目:可编辑控制的贝塞尔曲线(可控制锚点和控制点的位置)
- 机器人底盘的核心技术及应用案例
- 软件测试面试题(带答案)
- 翻译Deep Learning and the Game of Go(10)第七章:从数据中学习:一个深度学习AI
- Kubernetes 笔记(06)— 搭建多节点集群、kubeadm 安装 master/worker/console/flannel 网络插件
- java基于微信小程序旅游管理系统 uniapp 小程序