码迷,mamicode.com
首页 > 其他好文 > 详细

scrapy导出文件中文乱码问题

时间:2020-01-15 09:28:32      阅读:68      评论:0      收藏:0      [点我收藏+]

标签:乱码问题   RoCE   ini   alt   tin   name   ESS   dict   item   

背景:

使用scrapy crawl spidername -o filename.json命令执行爬虫,并将item写入文件,发现中文乱码,比如这样子:
技术图片

解决方法

第一种方法:

使用scrapy命令导出时指定编码格式

scrapy crawl baidu -o baidu_med.json -s FEED_EXPORT_ENCODING=utf-8

第二种方法:

借助Pipeline将item写入到文件
1.修改pipelines.py,添加:

import json
import codecs

class YiyaoPipeline(object):
    def __init__(self):
        self.file = codecs.open(‘item.json‘, ‘wb‘, encoding=‘utf-8‘)

    def process_item(self, item, spider):
        line = json.dumps(dict(item), ensure_ascii=False) + ‘\n‘
        self.file.write(line)
        return item

2.修改settings.py,激活pipeline:

ITEM_PIPELINES = {
   ‘yiyao.pipelines.YiyaoPipeline‘: 300,
}

注意:settings.py默认有ITEM_PIPELINES配置,只是注销掉了。
3.使用scrapy命令导出时,直接执行:

scrapy crawl baidu 

scrapy导出文件中文乱码问题

标签:乱码问题   RoCE   ini   alt   tin   name   ESS   dict   item   

原文地址:https://blog.51cto.com/fengjicheng/2466754

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!