导出器
在Scrapy
框架中称为Feed exports
,支持JSON
、CSV
、XML
格式的输出,当需要将数据存储为以上格式的时候,不需要编写Item Pipeline
,只需要使用导出器
即可,格式如下:
scrapy crawl spidername -o filename.json
对于默认的导出器,默认导出ASCII
编码的数据,无法显示中文,所以需要自定义导出器
,这里以JSON
为例,以下是在settings
中编写的代码.
# 导入Json导出器并重写
from scrapy.exporters import JsonItemExporter
class CustomJsonItemExporter(JsonItemExporter):
def __init__(self, file, **kwargs):
# 只需要将 ensure_asciis 设置为False即可,当然也可以对其他参数进行设置
super(CustomJsonItemExporter, self).__init__(file, ensure_ascii=False, **kwargs)
# Scrapy启用的导出器需要在 FEED_EXPORTERS 中声明
FEED_EXPORTERS = {
'json': 'JDBook.settings.CustomJsonItemExporter',
}
这样,再次使用-o
参数导出数据时,就可以显示中文了。
网友评论