scrapy导出文件时出现中文乱码怎么办

scrapy导出文件时出现中文乱码怎么办?相信很多没有经验的人对此束手无策,这篇文章总结了scrapy导出文件时出现中文乱码的解决办法,通过这篇文章希望你能解决这个问题。

创新互联建站专注于企业成都营销网站建设、网站重做改版、旌阳网站定制设计、自适应品牌网站建设、H5开发商城网站建设、集团公司官网建设、成都外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为旌阳等各大城市提供网站开发制作服务。

背景:

使用scrapy crawl spidername -o filename.json命令执行爬虫,并将item写入文件,发现中文乱码,比如这样子:
scrapy导出文件时出现中文乱码怎么办

解决方法

第一种方法:

使用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导出文件时出现中文乱码的问题了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读。


分享题目:scrapy导出文件时出现中文乱码怎么办
转载来于:http://pwwzsj.com/article/gesopc.html