Scrapy输出JSON中文乱码
发现问题
在使用下面的命令运行scrapy使其输出json格式时,出现了中文乱码问题, 如下图:
1 | scrapy crawl spidername -o test.json |

解决问题
方法一
运行爬虫时指定编码格式, 即在命令后面增加 -s FEED_EXPORT_ENCODING=utf-8。如下:
1 | scrapy crawl spidername -o test.json -s FEED_EXPORT_ENCODING=utf-8 |
方法二
方法一虽然可以解决问题,但并没有一劳永逸,每次运行爬虫都需要指定编码格式。所以我们直接在 settings 中指定编码格式。在合适的位置加入下面一行即可。
1 | FEED_EXPORT_ENCODING = 'utf-8' |

方法三
自定义Pipeline,并在settings中开启
1 | class JsonPipeline(object): |
在settings中找到ITEM_PIPELINES,修改成如下格式
1 | ITEM_PIPELINES = { |
自定义Pipeline之后,就不用使用 -o 指定文件了。如下:
1 | scrapy crawl spidername |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 修行的技术阁!
