scrapy runspider 导出乱码 初步判断 ,输入输出编码不一致 ,查阅官方与导出相关的配置说明如下
FEED_EXPORT_ENCODING Default: None The encoding to be used for the feed If unset or set to None (default) it uses UTF-8 for everything except JSON output, which uses safe numeric encoding (\uXXXX sequences) for historic reasons. Use utf-8 if you want UTF-8 for JSON too.
分析 换言之,此值默认为None,当使用json导出时(未指定编码),采用utf8编码输出到文件 然后看了一下蜘蛛所爬的源页响应头,编码是gb2312!!! 如果不指定填充数据编码,导出json文件时,将源gb2312保存为utf8,从而导致乱码 于是有了添加全局导出配置指定编码,ok scrapy runspider quotes_spider.py -o quotes.json -s FEED_EXPORT_ENCODING=gb2312
其它格式导出编码
然后发联想了一下,那其它 格式是否不需要指定编码?测试了一下,scrapy导出csv,xml,果然如此,框架通过扩展功能,管你是什么来源编码统统转为utf8。这就好像用官方的下载图片管道,无论你原来什么格式,下下来存的时候统统转为jpg(依赖pillow图片库)